我正在尝试将 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 int 到 Mac OS X 上的 char 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24582764/