释放char指针时获取SIGABRT

时间:2013-10-15 21:18:12

标签: c string char malloc free

这是我分配所需空间的方式:

char *all_type_str;
...
all_type_str = malloc(sizeof(char)*4);

设置字符串:

strcpy(all_type_str,"all");

将其设置为不同的数组:

...
values[0].value = all_type_str;

释放值数组:

for (i=0; i<arrSize; i++)
{
    free(values[i].value); //   <-- SIGABRT
}
free(values);

分配值数组:

values = malloc(sizeof(struct cnf)*adjArrSize);

使用gdb我可以看到我有一个非空指针和想要的"all"字符串

但由于某些原因,我在尝试释放数组中的第一个位置时得到SIGABRT

知道为什么会这样吗?

1 个答案:

答案 0 :(得分:0)

也许你的指针超出了范围?这是否具有相同的功能? 除非我们看到完整的代码,否则我们无法判断。