您能幫我嗎?我的代碼不符號化,所以我創造了這樣的代碼:調用strtok()後釋放內存會導致錯誤
- 我分配一些內存,
- 我
strcpy(malloced_memory, argv)
- 我執行
strtok(mallocted_memory, ".")
嘗試
free(mallocted_memory)
。filename = malloc(strlen(argv)); strcpy(filename, argv); strk_ptr = malloc(sizeof(filename)); strk_ptr = strtok(filename,".");// i++; sprintf(in->file_name,"%s",strk_ptr); while(strk_ptr = strtok(NULL,"."))// { i++; sprintf(in->file_name,"%s.%s",in->file_name,strk_ptr); sprintf(in->file_ext ,"%s",strk_ptr); } free(strk_ptr); free(filename);
該代碼有問題,我不能free(filename)
。如果我嘗試free(filename)
,則程序獲得SIGTRAP
。但程序正在工作。
我想解決這個問題。我該怎麼辦?
他們沒有問釋放strtok的記憶,他們詢問使用的strtok後釋放他們的記憶。 –
@KeithNicholas謝謝,重寫了一下 –