gpt4 book ai didi

c++ - 如何知道指针指向堆还是栈?

转载 作者:IT老高 更新时间:2023-10-28 12:49:17 29 4
gpt4 key购买 nike

例子:

bool isHeapPtr(void* ptr)
{
//...
}

int iStack = 35;
int *ptrStack = &iStack;
bool isHeapPointer1 = isHeapPtr(ptrStack); // Should be false
bool isHeapPointer2 = isHeapPtr(new int(5)); // Should be true
/* I know... it is a memory leak */

为什么,我想知道这个:

如果我在一个类中有一个成员指针,但我不知道指向对象是否是新分配的。然后我应该使用这样的实用程序来知道我是否必须 delete 指针。

但是:
我的设计还没有完成。所以,我会以我总是必须 delete 的方式对其进行编程。我要避免垃圾编程

最佳答案

没有办法做到这一点 - 如果你需要这样做,那么你的设计就有问题。 More Effective C++ 中讨论了为什么你不能这样做.

关于c++ - 如何知道指针指向堆还是栈?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3230420/

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