【发布时间】:2013-08-16 08:46:55
【问题描述】:
一个标识符在所有情况下都被 const 限定为只读存储吗? 还是会根据运行时间确定?当我要写入“只读”内存时,究竟会发生什么和/或可能发生什么。
const char **cpp;
char *p;
const char c = 'A';
cpp = &p;
*cpp = &c;
*p = 0;
这段代码在任何情况下都会修改 RO 内存吗?还是因为每次我执行它都不是 RO 内存所以这只是工作? 如果是这样,如果 char 存储在 RO mem 中并且我正在执行此代码会发生什么? 行为未定义,这甚至不是问题。但是这段代码是可执行的。 所以我的问题是:修改只读内存会发生什么?
【问题讨论】:
标签: c compiler-construction constants c99 undefined-behavior