【发布时间】:2019-08-25 17:59:01
【问题描述】:
int num = 5;
int* ptr = new int;
int** ptr2 = new int*;
int*** ptr3 = new int**;
ptr = #
*ptr2 = ptr;
这是给我一个错误的行 我显然想让 ptr3 指向 ptr2 但由于 C6001 它确实不起作用
**ptr3 = *ptr2;
std::cout << ***ptr3 << std::endl;
delete ptr;
delete *ptr2;
delete **ptr3;
【问题讨论】:
-
“我显然想让 ptr3 指向 ptr2” 好吧,你可能正在尝试,但你失败了。那将是
ptr3 = &ptr2; -
停止使用原始指针和
new,因为没有简洁的 c++ 推理。 -
三星级编程!
-
@Eljay 是的,这就是让迷失的灵魂更优秀的原因,但在现实中完全失败了。
-
根据经验;您使用的星星 (
*) 越多,您的 C++ 程序员就越差。 最好的 C++ 程序员几乎从不使用任何星号,当他们使用时,它们是表示非拥有指针的单星号。当然,泛泛而谈,但离事实不远。研究容器和智能指针,停止手动内存管理。