gpt4 book ai didi

c - 将用于分配内存的指针声明为 const 有缺点吗

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

令我震惊的是,如果我使用 const 指针声明一 block 内存,如下所示:

SomeType * const pointer = malloc(sizeof *pointer);

我不会不小心“丢失”指针(即通过修改或覆盖它)。这似乎是一个方便的“提醒”,它指向的内存需要被释放。这样做有缺点吗?想到了很多事情,可能是由于从函数返回指针,或者因为它可能与大量库函数不兼容。然而,这些看起来像是不便,而不是实际的错误。

最佳答案

我不明白。您仍然可以忘记释放它。

不利的一面是,你不能在释放它之后将它设置为 0 以表明它已经被释放,所以你可能会冒险调用 free 两次(想想一些错误处理代码想象它可能发生的地方)。

编辑:此外,正如@Dmitri 在评论中所说,声明指针 const 会阻止您重新分配它(通过任何方式)。

关于c - 将用于分配内存的指针声明为 const 有缺点吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39941775/

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