[英]Getting SIGABRT when freeing char pointer
這就是我分配所需空間的方式:
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
。
知道為什么會這樣嗎?
也許你的指針超出了范圍? 這是否具有相同的功能? 除非我們看到完整的代碼,否則我們無法分辨。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.