以下代码
u_int32 *data_out
data_out = malloc(4 * sizeof(uint32_t));
//connection_fd is a socket
n = write(connection_fd, data_out[0], strlen(data_out[0]));
产生以下错误:
Array.c:261:警告:传递“strlen”的参数 1 使指针来自整数而不进行强制转换 /usr/include/string.h:399:注意:预期为“const char *”,但参数的类型为“uint32_t”
我也尝试了以下方法,但结果仍然是警告:
n = write(connection_fd, (char) data_out[0], strlen((char) data_out[0]));
n = write(connection_fd, (char*) data_out[0], strlen((char*) data_out[0]));
感谢您的任何见解:), 帕特里克
最佳答案
为什么要用strlen来写int?
也许使用:
n = write(connection_fd, &(data_out[0]), sizeof(uint32_t));
关于将 uint32 转换为 char,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13526632/