[問題] realloc的問題

看板C_and_CPP (C/C++)作者 (冀憶)時間16年前 (2009/04/30 23:23), 編輯推噓2(204)
留言6則, 3人參與, 最新討論串1/1
最近寫程式用到了realloc 可是我發現只要我給程式的資料大於一定數量時 (即realloc的size大於某一大小時-----大約4個char*) 就會出現以下錯誤 *** glibc detected *** ./a.out : realloc(): invalid next size:0x08cfa008 *** 跟一些Backtrace跟Memory map的東西 小於那個數量就不會 這是為什麼呢@@? 部份程式碼如下:(nweArgv為char** token為char* count為int) while(token=strtok(NULL,delim)) { count++; newArgv=(char**)realloc(newArgv,sizeof(char*)*count); newArgv[count]=token; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.117.194.90 ※ 編輯: x3795566 來自: 140.117.194.90 (04/30 23:37)

05/01 00:13, , 1F
count有沒有initial?
05/01 00:13, 1F

05/01 00:23, , 2F
05/01 00:23, 2F

05/01 00:55, , 3F
...你realloc count個, 請assign到count-1
05/01 00:55, 3F

05/01 01:06, , 4F
大驚 一語驚醒夢中人
05/01 01:06, 4F

05/01 01:11, , 5F
非常感謝樓上<(_ _)>
05/01 01:11, 5F

05/01 14:48, , 6F
以後遇到這種問題用 valgrind 跑一次看看再上來問。
05/01 14:48, 6F
文章代碼(AID): #19-S9kH7 (C_and_CPP)
文章代碼(AID): #19-S9kH7 (C_and_CPP)