这是我分配所需空间的方式:
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
。
知道为什么会这样吗?
答案 0 :(得分:0)
也许你的指针超出了范围?这是否具有相同的功能? 除非我们看到完整的代码,否则我们无法判断。