c/c++
小皮柴来了
搬砖搬砖,加速加速
展开
-
请尽量在编程时避免函数返回值为char*
char*很好用,不过呢它是一个指针,指针就有指针都有的问题,例如野指针,又或者是空指针。 在char*作为函数返回值时,可能会造成某些不可预知的后果,比如你的返回值时而有时而没有之类的。 举个栗子 //这是一个函数,目的是返回一个char*数组作为文件的路径 char* returnFilePath(char* fatherFilePath,char*sonFilePath) { char * tempPath = (char*)malloc((sizeof(char))(sizeof(f原创 2020-09-06 22:34:35 · 535 阅读 · 0 评论 -
关于为什么有时候Debug版本内存访问越界是可以的,Relese就不行了的问题
内存访问数组下表为负的话,会访问到其他数据 因为debug版本下,在每块内存的前后都留有保护字节,里面预先写入一个固定值(0xCD),一旦这个值被改了,就报错!而在release下,这种机制当然就没有了(因为太耗性能了,只应该在debug版本启用) 所以建议在读取数据的时候对数组坐标进行限制,保险,不然程序在Debug版本可以,Release版本GG或者Debug时不时crash,这种时错时不错的程序问题最令人头疼。 断言 _DEBUG 与 NDEBUG :当定义了 _DEBUG ...原创 2020-09-06 22:15:05 · 303 阅读 · 0 评论