Я пишу код для реализации RPC.В частности, Клиент отправляет массив на сервер.Сервер отсортировал массив, сохранил этот массив в результате указателя *Но в клиенте, когда я пытаюсь распечатать весь отсортированный массив, выводится только первый символ отсортированного массива.Как я могу напечатать весь отсортированный массив на клиенте?
Примечание: xarray_val - указатель на массив, а xarray_len - количество элементов в массиве
Клиент:
char *result_1;
arrays bubblesort_1_arg;
bubblesort_1_arg.xarray.xarray_val=values;
bubblesort_1_arg.xarray.xarray_len=len;
result_1 = bubblesort_1(&bubblesort_1_arg, clnt);
if (result_1==(char *) NULL) {
printf("error");
clnt_perror (clnt, "call failed");
}
else {
printf("The bubble-sorted array is: %s \n", result_1);
}
Сервер:
char *result = malloc(argp->xarray.xarray_len * sizeof(char));
char temp;
int i, j;
//Sorting
for (i=0; i < argp->xarray.xarray_len; i++) {
for (j=0; j < argp->xarray.xarray_len-i-1; j++) {
if ( *(argp->xarray.xarray_val+j) > *(argp->xarray.xarray_val+j+1)) {
temp = *(argp->xarray.xarray_val+j);
*(argp->xarray.xarray_val+j) = *(argp->xarray.xarray_val+j+1);
*(argp->xarray.xarray_val+j+1) = temp;
}
}
}
strncpy(result, argp->xarray.xarray_val, argp->xarray.xarray_len);
return result;
}
Я знаю, что argp-> xarray.xarray_val - это просто указатель на первый символ отсортированного массива.Вот почему в клиенте печатается только первый символ, но я не знаю, как это исправить, чтобы распечатать весь отсортированный массив на клиенте.