c/c++:
为什么不能低级非const指针越级向高级const指针赋值的问题
const int n=11;
int *p;
int **pp;
const int ***ppp=&pp;//INVALID
const int ***ppp1=&p;//INVALID
/*if allowed,then*/
*ppp=(int**)n;
int *hole=(int*)ppp;
*hole=2333;//variable n changed
//取得它的地址,给他填充值(给赋值),再回去解它本身。
//凡是取得地址,变相地相当于给它间接赋值,而二级指针自身const属性保护!使这一切成为可能,
//前一级的非const是自由的,就是漏洞
//任意两级之间不能这样做
//结论:上一级的非const(指针)不能给下一级的const(指针)赋值,这样做是的上一级的非const成为了漏洞,下一级降级解+自身const保护(面具)==上一级非const可以取得const地址,突破安全性!
//结论:越级不可以这样做!