首页 新闻 会员 周边 捐助

如何设置TestA的参数,使得传A里面指针的指针里面的内容不会变

0
悬赏园豆:50 [待解决问题]
#include <iostream>
struct A {
  int size = 0;
  int* array = nullptr;
  A(int sz) : size(sz) {
     array = new int[size];
  }
  virtual ~A(){
    if(array) delete[] array;
    array = nullptr;
  }
};

void TestA(const A* const & ptr) {
  int* tmp = ptr->array;
  tmp[0] = 2;
  tmp[1] = 3;
}

int main() {
  A a(2);
  a.array[0] = 0;
  a.array[1] = 1;
  std::cout << "a.array[0] = " << a.array[0] << " a.array[1] = " << a.array[1] << std::endl; 
  TestA(&a);
  std::cout << "a.array[0] = " << a.array[0] << " a.array[1] = " << a.array[1] << std::endl; 
}
问题补充:

这是一个伪代码

cyssmile的主页 cyssmile | 初学一级 | 园豆:154
提问于:2020-12-09 19:02
< >
分享
所有回答(1)
0

https://blog.csdn.net/eric_jo/article/details/4138548 参考有的总结,看你是那个不要修改,验证下
注意const是有一定的限制的

2012 | 园豆:21645 (高人七级) | 2020-12-10 08:13
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册