簡體   English   中英

釋放char指針時獲取SIGABRT

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM