Как было предложено в ответе на мой последний вопрос ( Как я могу отправить массив целых чисел через TCP в C? ), я пытался отправить массив длинных int, однако я могу делать что-то сломать решение ...
#define ARRAY_LEN 4
/* I'm using long because the numbers are very large,
* but in this example they're small to save space. */
long originalArray[ARRAY_LEN] = { 1, 2, 3, 4 };
myObject.SetMyArray(originalArray);
// NOTE: The following is in a different function.
long *myArrayFromFunction = myObject.GetMyArray();
write(clientSocketFD, myArrayFromFunction, sizeof(myArrayFromFunction) * ARRAY_LEN);
Преобразование в указатель при неправильной передаче?
При чтении на стороне клиента, вместо того, чтобы получать отправленные номера (1, 2, 3, 4), я получаю длинные номера, такие как 140088443806649 ...
#define ARRAY_LEN 4
long targetArray[ARRAY_LEN];
read(socketFD, targetArray, sizeof(targetArray) * ARRAY_LEN);
Итак, предполагая, что мне нужно прочитать указатель, я попробовал это ...
#define ARRAY_LEN 4
long *targetArray;
read(socketFD, targetArray, sizeof(targetArray) * ARRAY_LEN);
Но это тоже не сработало (функция чтения вернула -1).