数组赋值给指针问题

wudipapa 2019-08-14 03:59:27
#include "stdafx.h"
#include <iostream>
using namespace std;

class Test
{
private:
int a[3] = { 0 };
int* pa = a;
public:
void Read_Data()
{
int b[3];
for (int i = 0; i < 3; i++)
{
b[i] = i;
}
Set_Data(b);
}
void Set_Data(int* temp)
{
pa = temp;
}
int* Get_Data()
{
return pa;
}
};


int main()
{
Test* t = new Test();
t->Read_Data();
int* number = t->Get_Data();
for (int i = 0; i < 3;i++)
{
cout << number[i] << endl;
}
getchar();
return 0;
}

各位,为上以上代码main函数里得不到赋值的数组啊?
...全文
356 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
wudipapa 2019-08-14
  • 打赏
  • 举报
回复
引用 9 楼 弓人水 的回复:
小数据量数组的话可以拷贝出去,大数据量的话建议new一个指针
大数据new出来,在析构里delete吗?有道理啊,谢谢大哥
wudipapa 2019-08-14
  • 打赏
  • 举报
回复
引用 8 楼 csucxy 的回复:
你是要这样? #include <iostream> using namespace std; class Test { private: int a[3] = { 0 }; public: void Read_Data() { for (int i = 0; i < 3; i++) { a[i] = i; } } int* Get_Data() { return a; } }; int main() { Test* t = new Test(); t->Read_Data(); int* number = t->Get_Data(); for (int i = 0; i < 3; i++) { cout << number[i] << endl; } return 0; }
嗯,差不多吧,是一个模块里抽出来的东西,只是我是新手,可能意思有点区别了,现在我知道是局部变量的问题了,谢谢大哥
弓人水 2019-08-14
  • 打赏
  • 举报
回复
小数据量数组的话可以拷贝出去,大数据量的话建议new一个指针
csucxy 2019-08-14
  • 打赏
  • 举报
回复
你是要这样? #include <iostream> using namespace std; class Test { private: int a[3] = { 0 }; public: void Read_Data() { for (int i = 0; i < 3; i++) { a[i] = i; } } int* Get_Data() { return a; } }; int main() { Test* t = new Test(); t->Read_Data(); int* number = t->Get_Data(); for (int i = 0; i < 3; i++) { cout << number[i] << endl; } return 0; }
wudipapa 2019-08-14
  • 打赏
  • 举报
回复
引用 6 楼 csucxy 的回复:
你不给出编程目的,不知道你到底想做什么
就是想把那个数组传出去。。。
csucxy 2019-08-14
  • 打赏
  • 举报
回复
你不给出编程目的,不知道你到底想做什么
wudipapa 2019-08-14
  • 打赏
  • 举报
回复
引用 2 楼 csucxy 的回复:
b数组是Read_Data的局部变量,在这个函数Read_Data调用结束后它就会被销毁,即不存在了,pa成了一个野指针。 整个过程逻辑很混乱
明白了,那这样的话,除了把 int b[3];改成类成员变量以外还有别的办法吗?
wudipapa 2019-08-14
  • 打赏
  • 举报
回复
引用 1 楼 弓人水 的回复:
Read_Data()执行完b数组就会超出生命周期释放了。
哦哦,那这样的话,除了把 int b[3];改成类成员变量以外还有别的办法吗
csucxy 2019-08-14
  • 打赏
  • 举报
回复
最好是把编程目的写出来
csucxy 2019-08-14
  • 打赏
  • 举报
回复
b数组是Read_Data的局部变量,在这个函数Read_Data调用结束后它就会被销毁,即不存在了,pa成了一个野指针。 整个过程逻辑很混乱
弓人水 2019-08-14
  • 打赏
  • 举报
回复
Read_Data()执行完b数组就会超出生命周期释放了。

64,685

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧