数组与指针

0
#include<iostream>

using namespace std;

int main()
{
	int a[5] = { 1,2,3,4 };
	int* e;
	*e = a[1];
	cout << e << " " << *e<<" " << endl;
	return 0;
}

为什么*e = a[1];显示错误?

ava
K@~@"Y

2020-7-22

0

e 只是一个指针变量,*e 等同于该地址指向的变量。问题是:e 并没有指向有效的地址,所以将 a[1] 储存到该地址的时候会报错。

让该地址有效的方法之一,是分配一个新的空间,让指针指向这个空间。注意,该空间不用的时候需要主动删掉。代码如下:

#include<iostream>

using namespace std;

int main()
{
	int a[5] = { 1,2,3,4 };
	int* e;
	e = new int;	// 分配新内存
	*e = a[1];
	cout << e << " " << *e<<" " << endl;
	delete e;		// 删除分配的内存
	return 0;
}
ava
慢羊羊

2020-7-23

热门标签
相关问题