本文的内容包括:
1 导致显存破坏的表针操作类型;
2 在使用动态显存分配时必须考虑的检测点;
3 导致内存泄漏的场景。
有几种问题场景可能会出现c语言内存泄漏的解决方法,从而可能在完成生成后引起问题。在处理表针时,您可以使用本文中信息来防止许多问题。
一、未初始化的显存
已知P分配了10个字节,这10个字节可能包含垃圾数据,如 char *p = malloc(10);如果在对这个 P形参前c语言内存泄漏的解决方法,某个代码尝试访问它,则可能会获得垃圾值,您的程序可能具有不可预测的行为,P可能具有您的程序未曾有过得值。良好的习惯是一直结合使用memset和 malloc 分配显存,或者使用calloc.
char * p = malloc(10); memset(p,'\0',10)现在虽然同一个代码尝试在对P形参前访问它,该代码也能正确处理NULL值;
char * name =(char *)malloc(11);
memcpy(p,name,11);在本事例中,memecpy 操作尝试将11个字节讲到P,而后者仅仅被分配了10个字节。memcpy函数是确保对可用字节数和所写入的字节数进行交叉核实。
二 内存读取越界
char * ptr =(char *)malloc(10);
char name[20];
memcpy(name ,ptr,20);
三 内存泄漏
char * memoryArea =malloc(10);memoryArea = "properity";newArea="itsnewarea"
char * newArea = malloc(10);
如果执行
memoryAr