gpt4 book ai didi

c++ - 如何显示在堆上创建的内存地址?

转载 作者:行者123 更新时间:2023-11-27 22:42:33 25 4
gpt4 key购买 nike

我知道这是一个非常基本的问题,但我没有答对。

char * data = new char[5];
data = "hamz";

这里我创建了一个指向 char, data 的指针。 Data是一个指针,它存储的是一个char数组在堆上的地址。

当我 cout<<data;

为什么不显示地址?它显示“hamz”。

同理

cout<<&data[0];

我怎么知道数据中存储的地址?因为它将数组的地址存储在堆上。

最佳答案

ostream过载 <<对于 const char*以一种特殊的方式工作:它将内存作为字符输出到下一个 NUL 终止符。

如果您想关闭此行为,并输出指针的实际地址,则转换为 const void* :

std::cout << (const void*)(data);

注意你真的应该写

const char* data = "hamz";

然后将 new 装箱.目前你像漏勺漏水一样泄漏内存。

关于c++ - 如何显示在堆上创建的内存地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47460012/

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