gpt4 book ai didi

c++ - 动态内存分配

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:06:49 24 4
gpt4 key购买 nike

我对动态内存分配的概念有点困惑。如果我们声明一个指针,比如一个 char 指针,我们需要分配足够的内存空间。

char* str = (char*)malloc(20*sizeof(char));
str = "This is a string";

但这也行。

char* str = "This is a string";

那么在什么情况下我们必须分配内存空间呢?

最佳答案

在第一个示例中你有内存泄漏

char* str = (char*)malloc(20*sizeof(char)); 
str = "This is a string"; // memory leak

分配的地址将被替换为新地址。新地址是“This is a string”的地址。

你应该改变第二个样本。

const char* str = "This is a string";  

因为“This is a string”是写保护区。

关于c++ - 动态内存分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6408701/

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