我正试图将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);
关于c - 在Mac OS X上将C int转换为char数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24582764/