您能帮我吗?我的代码不符号化,所以我创造了这样的代码:调用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谢谢,重写了一下 –