[英]C int to char array on Mac OS X
我正在尝试将int
转换为char*
。 我在Mac OS X上,因此我不能使用itoa
,因为它是非标准的,我试图使用sprintf
或snprintf
但我一直遇到segmentation fault: 11
。 这是我得到的:
snprintf(msg, sizeof(char *), "%d", 1);
所以我希望有个建议,我该怎么办?
msg
(它是一个char *
可能没有指向它可以使用的内存。 因此,您首先必须动态分配将用于存储字符串的内存。
msg = malloc(12); // 12 is an arbitrary value
snprintf(msg, 12, "%d", 1); // second parametre is max size of string made by function
另外,您可以声明一个静态缓冲区。 这样,您就不必释放任何内存。
char msg[12]; // again, 12 is an arbitrary value
snprintf(msg, sizeof(msg), "%d", 1);
您如何声明味精?
这样的事情应该起作用:
char msg[15];
snprintf(msg, sizeof(msg), "%d", 1);
请注意, snprintf
的第二个参数是字符串的长度,而不是字符的大小。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.