我正在尝试将转换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);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句