看这样一段代码:
------------------------------------
char **pp;
char *p;
char aa[100] = "123";
p = aa;
*pp = aa;
------------------------------------
运行到最后一句崩溃,有人说*p也没分配内存,照样临时挂靠到aa上,**pp怎么就不能呢?
我的理解,空间不能越级挂靠。
p没有分配空间,但自己控制自己,没有子级,所以可以挂靠在aa上,
*pp是pp的下一级,但pp还没有挂靠,没有名声,我的部下已经挂靠名门了,那是不允许的.
p的图示:
-------
* p
-------
aa
-------
pp的图示
-------
* pp
-------
* *pp
-------
aa
-------
所以稍加修改成如下:
------------------------------------
char **pp = new char*;
char *p;
char aa[100] = "123";
p = aa;
*pp = aa;
delete pp;
------------------------------------