繁体   English   中英

在Mac OS X上将C int转换为char数组

[英]C int to char array on Mac OS X

我正在尝试将int转换为char* 我在Mac OS X上,因此我不能使用itoa ,因为它是非标准的,我试图使用sprintfsnprintf但我一直遇到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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM