-1

任何人都可以帮助将 Int 转换为 char 数组,因为我有缓冲区

char *buffer = NULL;  
int lengthOfComponent = -1;   
char *obj;
buffer[index]= (char *)&lengthOfComponent; 

如果我这样做,它会在执行后引发 EXCESS BAD ACCESS如何使用 memcpy 将 obj 的值存储到缓冲区

4

2 回答 2

2

当然你不能写入缓冲区[索引],它没有被分配!

buffer = malloc(sizeof(char) * lengthOfBuffer);

应该这样做。之后,您可以使用 memcpy 或分配来写入缓冲区,就像您正在做的那样。

于 2012-07-23T12:54:51.410 回答
0
buffer[index] = (char *)&lengthOfComponent;

buffer[index]就像取消引用指针一样。但是buffer没有指向任何有效的位置。因此运行时错误。

C 解决方案正在使用 snprintf。尝试 -

int i = 11;
char buffer[10];

snprintf(buffer, sizeof(buffer), "%d", i);
于 2012-07-23T12:43:45.183 回答