C int 到 Mac OS X 上的 char 数组

标签 c macos printf itoa

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

相关文章:

c - rabbitmq-c SSL 对等证书验证失败

python - 如何在 MacOs X 10.5 上安装 plpython?

c - C中printf()中单引号和双引号的区别

macos - SDL2、Mac OS X 和 OpenGL : How to avoid including both gl. h 和 gl3.h?

C:从函数返回 char* 会导致 printf 崩溃

c - 不使用条件语句检测-1

c - 在最后写入的行之后,我希望它声明文件结尾而不是生成新行

c - 从 C 中的文本文件中读取\n 作为真正的 Feed Line 字符

linux - setsockopt IPT_SO_SET_REPLACE 标志返回错误(linux)

java - 在 Mac 上用 Eclipse 运行 tomcat