【发布时间】:2021-02-15 02:45:24
【问题描述】:
刚开始使用 lambda。我想创建指向数组的指针。我想我搜索了整个互联网和每个单独的教程,但我没有找到答案。
auto c = []() -> int* { int* b = new int[10]; b[0] = 2; b[1] = 2; return b; };
std::cout << sizeof(c()) << std::endl;
delete c();
即使 arrar 大小为 1000,sizeof(c) 始终返回 4。我的问题是你真的能做到吗?
【问题讨论】:
-
在您的平台上,
int*的大小为 4 个字节。 -
你用错了
delete。 -
您正在泄漏第一个数组,因为您两次调用该数组,因此分配了 2 个数组。