使用未分配的内存进行调整

Tweaking with unassigned memory

本文关键字:调整 内存 分配      更新时间:2023-10-16

我正在尝试执行以下操作:

char c[] = "programming";
char *p;
*(c-1)='l';
*(c-2)='l';
*(c-3)='l';
*(c-4)='l';
*(c-5)='l';
p=&c[0];
cout<<*(c-1); 

只有当我省略p=&c[0];时,才会打印l,为什么会这样?CCD_ 3与CCD_。

您认为应该是关系的期望是有根本缺陷的。

这一切都是未定义的。编译器可以进行如此的许多优化,以及其他可以利用语言提供的灵活性的方式,因此您不能用这些东西做出任何假设。

只是不要尝试。