我想將文件名路徑存儲在char
變量中,稍後通過函數調用傳遞它。要做到這一點,我聲明瞭以下字符緩衝區:打印字符緩衝區時出現問題
char *filename_path = malloc(100* sizeof(char));
現在,爲了測試,我賦予它使用的路徑,然後打印緩衝區的值,以確保它非常適合。
filename_path= "../Datasets/Cluster(%d)%s";
printf("%s\n", filename_path);
...
free(filename_path);
不過,我得到這個錯誤:
../Datasets/Cluster(%d)%s
k.out(1154,0x7fff9843c3c0) malloc: *** error for object 0x103fbbacb: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug
Abort trap: 6
可有人暗示我在哪裏,這個問題可能是什麼?謝謝
你只能被'malloc'返回的'free'指針。 – melpomene
@melpomene謝謝你的回答。你能在這種情況下展示如何釋放! – Don
'p = malloc(...); p = ...'是內存泄漏。你正在覆蓋'malloc'返回的指針。 – melpomene