1.少写了malloc
这样写通过编译、连接
char* bodylc = (char *)(sizeof(char)*128);
但本意是下面:
char* bodylc = (char *)malloc(sizeof(char)*128);
2.new写错形式
原意: char * p = new char[len];
delete []p;
char *p = new char[len]这句被写成了char *p = new char(len)。
这里如果忘记了写delete可能运行时也不会出错,但是程序运行时将会使用未申请的空间,留下更难发现的BUG。
new char[len]; 申请len[个数]个连续的空间。
new char(len]; 申请一个char大小空间,并用char(int)这个构造函数来初始化这个对象 。
char(len)把内置类型char看作是类来处理,以构造函数形式初始化对象,char = len。
阅读(1950) | 评论(0) | 转发(0) |