A R*_*A R 0 c++ linux pointers const char
我试图删除一个指针(对于char数组)时遇到seg错误.请帮我.我在这里做错了什么.请在下面找到代码段和输出.
代码:
# include <iostream>
using namespace std;
int main()
{
int *p = new int;
const char* c = new char[100];
c = " hello";
*p = 10;
cout << "c= " << c << "*p = " << *p << endl;
delete p;
delete c;
c = NULL;
p = NULL;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出:
c= hello*p = 10
Segmentation fault (core dumped)
Run Code Online (Sandbox Code Playgroud)
编辑:
如果我不使用new和删除字符数组,它是一个内存泄漏?我不能在我的代码中使用字符串,那么使用const char*variable的正确方法是什么?
提前致谢.
您可以在c此处分配内存并将其分配给指针
const char* c = new char[100];
Run Code Online (Sandbox Code Playgroud)
但是你重新分配指针:
c = " hello";
Run Code Online (Sandbox Code Playgroud)
这意味着您松开了原始指针,现在c指向"hello"您无法删除的文字字符串.