使用malloc和不使用malloc存储字符指针中的值之间的区别

时间:2011-01-17 02:24:40

标签: c++ c malloc

我有一个像这样的字符指针

  char *ptr;

我可以像这样分配值

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

现在我可以这样做,为什么要使用malloc?

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

1 个答案:

答案 0 :(得分:16)

  

我很幸运,这个指针是   没有引用的地址   被一个过程使用?

不,你不幸运。如果你很幸运,程序会崩溃,所以你知道你有问题。如上所述,您的代码是未定义的行为。您正在通过指向未分配内存的指针来写入数据。

  

§6.5.6/ 8
如果两者都有   指针操作数和结果点   到同一个数组对象的元素,   或者一个过去的最后一个元素   数组对象,评估不得   产生溢出; 否则,   行为未定义。