我正试图将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);

关于c - 在Mac OS X上将C int转换为char数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24582764/

10-16 18:28