![]() |
1
9
字符串文本将由编译器放置在二进制文件的初始化数据或文本(代码)段中,而不是驻留在(运行时分配的)内存或堆栈中。所以您应该使用指针,因为您将引用编译器已经为您生成的字符串文本。注意,修改这个(通常需要更改内存保护)将改变这个文本的所有使用。 |
![]() |
2
6
修改字符串文字是未定义的行为,并且最有可能是程序崩溃的原因(ISO C++:2.134/2)。标准允许从字符串文本到
如果希望将字符串文字视为常量,则可以将成员的类型更改为
如果你的设计要求
|
![]() |
3
1
谢谢科迪和理查德。 我找到了虫子的原因。这是因为我在删除一个已经删除的对象。我在做:
我把它改成:
学习C++绝对有趣: |
![]() |
4
0
可能导致崩溃的原因是您没有0-终止字符串? |
![]() |
5
0
让我们看看你的选择。
你所做的就是使用C字符串。这些不应该与C++ STD::string混淆。C++ STD::string是自动初始化为空字符串的。所有分配的内存都被正确地取消分配。它可以很容易地作为可修改版本和不可修改版本返回。它也很容易操作( 即 增大收缩变化)。如果增加了C字符串,则需要重新分配内存并将字符串复制到新内存等(这非常耗时,而且容易出错)。
为了处理动态分配对象,我将了解智能指针。
|
![]() |
payloc91 · 存储地图中的条目是否安全?它会导致内存泄漏吗? 7 年前 |
![]() |
pjj · 如果GC'ed是弱可达对象,那么为什么会出现OOM错误 7 年前 |
![]() |
K.R. · RxJava行为主体和使用者-这里是否存在内存泄漏? 7 年前 |
![]() |
eaglefreeman · 意外的R内存管理行为 7 年前 |
![]() |
areify · 如何避免此代码中的内存泄漏? 7 年前 |