gpt4 book ai didi

c++ - 使用字符串内存

转载 作者:搜寻专家 更新时间:2023-10-31 01:04:50 24 4
gpt4 key购买 nike

为什么 delete(pcResult); 下面的代码出现异常?

void strange(char *pcResul)
{
CString pss ="123";
strncpy (pcResul,(LPCTSTR)pss,3);

}

void Dlg::OnBnClickedUser()
{
char *pcResult = new char (10);
strange(pcResult);
delete(pcResult);
}

最佳答案

您只分配了一个字符;然后你写入它并在它之后写入两个字节的内存,给出未定义的行为。

如果你想分配一个十个字符的数组,那就是

char *pcResult = new char[10];

并且需要作为数组删除

delete [] pcResult;

但是,除非这是学习低级内存恶作剧的练习,否则请使用 std::string 来表示字符串。

关于c++ - 使用字符串内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23299088/

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