任何人都可以帮助将 Int 转换为 char 数组,因为我有缓冲区
char *buffer = NULL;
int lengthOfComponent = -1;
char *obj;
buffer[index]= (char *)&lengthOfComponent;
如果我这样做,它会在执行后引发 EXCESS BAD ACCESS如何使用 memcpy 将 obj 的值存储到缓冲区
任何人都可以帮助将 Int 转换为 char 数组,因为我有缓冲区
char *buffer = NULL;
int lengthOfComponent = -1;
char *obj;
buffer[index]= (char *)&lengthOfComponent;
如果我这样做,它会在执行后引发 EXCESS BAD ACCESS如何使用 memcpy 将 obj 的值存储到缓冲区
当然你不能写入缓冲区[索引],它没有被分配!
buffer = malloc(sizeof(char) * lengthOfBuffer);
应该这样做。之后,您可以使用 memcpy 或分配来写入缓冲区,就像您正在做的那样。
buffer[index] = (char *)&lengthOfComponent;
buffer[index]
就像取消引用指针一样。但是buffer
没有指向任何有效的位置。因此运行时错误。
C 解决方案正在使用 snprintf。尝试 -
int i = 11;
char buffer[10];
snprintf(buffer, sizeof(buffer), "%d", i);