gpt4 book ai didi

c++ - 在结构或集合中使用 char *

转载 作者:太空宇宙 更新时间:2023-11-04 15:22:27 25 4
gpt4 key购买 nike

我有点困惑 char *对于一个collection或者struct是在内存中处理的,也就是管理内存的职责是什么。我听说一般来说,当你有像 string 这样的类时,依赖资源管理和指针是不明智的。可用。

std::tr1::unordered_map<char*, Vars> elements;

struct example{
char*name;
}

如果您在技术上传递一个指向字符数组的指针,那么这意味着“拥有”集合或结构不管理那段文本的内存,而只是一个指向它的指针。那么该文本是否有可能从内存中消失并且指针悬空?

例如:

char * text="yo";
example myStruct;
myStruct.name=text; // how safe is this?

最佳答案

裸指针编码任何关于解除分配的所有权/责任的信息。这完全取决于指针/struct 的来源。这正是智能指针和类如 std::string 存在的原因。

举个例子,

char * text="yo";

这个已经弃用了,和内存分配无关。使用 char const* 指向文字。这个字符串不可能在一个行为良好的程序中消失;它很可能存在于只读存储器中。

关于c++ - 在结构或集合中使用 char *,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15789918/

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