gpt4 book ai didi

c++ - 为自定义编辑控件分配内存的最佳方式?

转载 作者:行者123 更新时间:2023-11-30 04:31:42 24 4
gpt4 key购买 nike

我正在编写自定义编辑控件 (C++/Win32) 并且已经运行了基本功能。

  • 我使用 C 风格的缓冲区来存储编辑控件中可见文本的内容。现在,我想知道我是否应该使用 malloc/free 组合从堆,还是应该继续使用 new/delete 对?
  • 前几天我遇到了一个问题。我动态创建了一个
    分配的 c 风格字符串类成员 (char* szClassName)。那我
    在初始化列表中将其初始化为
    szClassName("类名")

    当我在析构函数中使用“delete szClassName”时,它会导致一些内存分配错误。你们能告诉我问题吗
    在这里?

最后,你们能给我一些在您自己的编程冒险中有用的内存管理技巧吗?

谢谢,

开发!

最佳答案

I created a dynamically allocated c -style string class member(char*
szClassName
). Then I initialized it in an initializer list as szClassName("name of class").

不,你没有。首先,您创建了一个指向字符的指针。然后用静态文字字符串常量“类名”(编译器会在目标文件的只读数据段中分配)的地址初始化指针。

因此,当您的析构函数调用 delete szClassName 时,您试图释放只读数据段中的一 block 内存,而不是使用 new 动态分配的内存块(因此出现错误) .

关于c++ - 为自定义编辑控件分配内存的最佳方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8099821/

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