C++中如何返回数组类型数据

错误示范:

int* test01() {
	int data[3] = { 1,2,3 };

	return data;
}

int main() {
	int* result = test01();

	for (int i = 0; i < 3; i++) {
		cout << result[i] << '\t';
	}
}

正确示范:

int* test01() {
//	int data[3] = { 1,2,3 };
	int* data = new int[3];
	for (int i = 0; i < 3; i++) {
		data[i] = i + 1;
	}

	return data;
}

int main() {
	int* result = test01();

	for (int i = 0; i < 3; i++) {
		cout << result[i] << '\t';
	}
}

 

分析:

返回数组类型本质上是返回一个地址,而错误示范中的数组是声明的是一个局部变量,随着程序跳出方法,局部变量会随之释放,因此后面打印出一些奇怪的数据

正确示范中new出的对象是声明在堆区的,堆区数据不会随程序跳出方法就立马被释放。

posted @   晚生小白  阅读(225)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 提示词工程——AI应用必不可少的技术
· 地球OL攻略 —— 某应届生求职总结
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界
点击右上角即可分享
微信分享提示