Я создал структуру, содержащую несколько строк:Отправить структуру, содержащую строку по UDP
typedef struct sc_message {
int32_t across_conf;
char domain[16];
char fl_phase[16];
} sc_message;
Я всегда считал, что char
массивы, как и любые другие массивы в C, на самом деле были указатели на первый байт строки.
Я инициирую строки с помощью функции strncpy()
, и я использую эту структуру как сообщение для отправки с помощью функции sendto()
.
Результат отлично работает, я проанализировал пакеты, отправленные программой с Wireshark, содержимое строк отправлено.
Но когда я снова прочитал свой код, я понял, что, согласно моей предыдущей теории, только адреса указателей хранятся в структуре и должны быть отправлены, а не сам контент. Видимо, я ошибаюсь, или я что-то упускаю.
Может ли кто-нибудь объяснить, как это возможно?
Массивы не являются указателями! –
Я думал, что переменная 'char []' может рассматриваться как переменная 'char *'. – Raspbeguy