C++ 中的字符串表达式如何工作?
考虑:
#include <iostream>
using namespace std;
int main(int argc, char *argv[]){
const char *tmp="hey";
delete [] tmp;
return 0;
}
“嘿”表达式存储在何处以及如何存储?为什么当我尝试删除它时会出现分段错误?
在这种(有些特殊)情况下,它的存储位置由编译器决定。然而,这对你来说并不重要 - 如果你不使用分配内存new
,尝试解除分配它并不是很好delete
。你不能delete
按照您分配的方式分配内存。
如果您想控制该资源的释放,您应该使用std::string
,或使用分配缓冲区malloc()
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)