Преобразование uint32_t htonl в char[4] с использованием memcpy не дает вывода
Мой вопрос в некотором роде похож на тот, который приведен в этой ссылке: используйте htonl для преобразования целого числа и memcpy в char*, но ничего, и есть некоторые другие подобные вопросы, но причина, по которой я задаю новый, заключается в том, что я не удалось найти решение. То, что я хочу сделать, это добавить длину сообщения в 4 байта от htonl перед отправкой реального сообщения (sendBuffer)
int packed_len = strlen(dataInChar); //dataInChar is the serialized char array
char myByteArray[sizeof(int)];
uint32_t bigEndianValue = htonl(packed_len); // convert the value to big-endian for cross-platform compatibility
memcpy(myByteArray, &bigEndianValue, sizeof(uint32_t));
std::cout<<"myByteArray length: "<<strlen(myByteArray)<<std::endl; //output 0
char sendBuffer[1024]; //final buffer to send
memcpy(sendBuffer, &myByteArray, 4);
memcpy(sendBuffer+4, dataInChar, strlen(dataInChar));
std::cout<<"sendBuffer length: "<<strlen(sendBuffer)<<std::endl; //output 0
Я не касался C++ годами, поэтому, пожалуйста, простите меня за любые глупости, которые я делаю здесь неправильно.