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出的对象是声明在堆区的,堆区数据不会随程序跳出方法就立马被释放。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 提示词工程——AI应用必不可少的技术
· 地球OL攻略 —— 某应届生求职总结
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界