这就是我分配所需空间的方式:
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我可以看到我有一个不为null的指针,并带有想要的
"all"
字符串但是由于某种原因,当尝试释放数组中的第一位时得到
SIGABRT
。知道为什么会这样吗?
最佳答案
也许您的指针超出范围了?这是同一功能吗?
除非我们看到完整的代码,否则我们无法确定。