gpt4 book ai didi

c++ - 使用 malloc 和不使用 malloc 在字符指针中存储值的区别

转载 作者:太空宇宙 更新时间:2023-11-04 05:02:44 25 4
gpt4 key购买 nike

我有一个这样的字符指针

  char *ptr;

我可以这样给它赋值

  *ptr='a';
*(ptr+1)='b';

现在我可以做到这一点,为什么还要使用 malloc?

我只是很幸运,这个指针没有引用进程正在使用的地址吗?或者,如果我不使用“malloc”,我的数据是否有可能被其他进程损坏?

最佳答案

Am I just lucky that this pointer is not referencing an address that is being used by a process?

不,你不走运。如果你幸运的话,程序会崩溃,这样你就知道你遇到了问题。如所写,您的代码是未定义的行为。您正在通过指向未分配内存的指针写入数据。

§ 6.5.6/8
If both the pointer operand and the result point to elements of the same array object, or one past the last element of the array object, the evaluation shall not produce an overflow; otherwise, the behavior is undefined.

关于c++ - 使用 malloc 和不使用 malloc 在字符指针中存储值的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4709531/

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