gpt4 book ai didi

c++ - 我怎样才能知道指针参数的来源?

转载 作者:行者123 更新时间:2023-11-30 02:52:02 25 4
gpt4 key购买 nike

int a;
int *b;
void test(int* target)
{
delete(target);
}
test(new int); // <-- It's ok, of course.
test(&a); // <-- It raises assertion fail, of course, too.

上面给出了以下代码。关于 target,我只知道一个指向整数的指针。如何判断参数指针的来源?

最佳答案

您无法可靠地判断指针是否指向有效的动态分配内存部分的开头。

这就是手动内存管理首先很复杂的原因 - 对于您动态分配的所有内容,您需要正确定义谁负责创建以及谁负责删除。弄错这个错误会导致未定义的行为、段错误和所有其他类型的难以追踪的错误。

请记住,尽管 C++ 为您提供了许多工具(RAII、智能指针等),除了少数剩余情况外,这些工具使手动内存管理变得不必要。

关于c++ - 我怎样才能知道指针参数的来源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19285132/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com