先说一下用法:
char *stemp = (char*)malloc(256 * sizeof(char));
if(stemp == null) return false;
注意有可能分配失败,所以这里需要判空一下。
使用结束要free:
free(stemp);
stemp = null;
今天使用的时候突然蹦出来弹框:
心情又崩溃了,想换其他方法了,想想还是把问题解决了;找啊找。。。。
发现问题出在free那里,debug看一下free里面的指针不为空啊,重新来,看char *stemp = (char*)malloc(256 * sizeof(char));
再看free的时候:
去,怎么不一样了?
最后又找,好长的函数,终于找到了
对指针赋值了。
【总结】使用malloc和free的时候,一定好注意,不要对分配的指针赋值操作了,复制后,free找不到原来的指针,必然会报错。也就是说,malloc和free是成对出现,free的时候指针必须是malloc过的。对指针的操作,的确需要很深的“内功”。