将 uint32 转换为 char

标签 c pointers casting

以下代码

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/

相关文章:

c# - 将计算出的 double 转换为十进制可以纠正精度误差吗?

将任意大小的字符串转换为任意精度的整数(bigint)

c++ - 将 C++ 对象传递给 C 例程时未定义的行为

java - Java 父类(super class)数组中的子类

创建节点时指针的 C++ 问题

c++ - 关于指针的说明

c - 空指针转换为其他指针类型 T 的行为与 T 不同

c - 如何释放链表?

c - 使用信号量的 undefined reference 问题

c - 应为 ‘int *’,但参数的类型为 ‘int (*)[(long unsigned int)(n)]’