c – strcpy一个字符串进入一个更大的char数组导致内存泄漏?
发布时间:2020-12-16 10:50:30 所属栏目:百科 来源:网络整理
导读:嘿所有,只是想知道以下是否会导致内存泄漏? char* a = "abcd"char* b = new char[80];strcpy(b,a);delete[] b; 它会删除整个80块还是只删除strcpy复制到其中的4个字符?谢谢! 解决方法 您在b中分配了80个字节,因此delete []将释放80个字节.在此期间你对阵
嘿所有,只是想知道以下是否会导致内存泄漏?
char* a = "abcd" char* b = new char[80]; strcpy(b,a); delete[] b; 它会删除整个80块还是只删除strcpy复制到其中的4个字符?谢谢! 解决方法
您在b中分配了80个字节,因此delete []将释放80个字节.在此期间你对阵列做了什么是无关紧要的.
(当然,除非您损坏了堆,否则delete []可能会崩溃.) 编辑:正如其他人所指出的,由于b是一个数组,你需要使用delete [] b;而不是删除b;.一些实现可能会让你逃避,但其他实现不会,它仍然是错误的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |