分配空间
- C/C++ code
char *a;scanf("%s",a);1.谭老的书是说定义了一个指针变量未对它初始化,所以a指向的区域的值是未知值,所以输入会导致错误。
2.C与指针是说声明一个指针变量时,编译器只为指针本身保留内存空间,它并不为任何字符型值分配内存空间。
个人认为是是不是a是一个随机地址(随机单元还是存在的),并未分配一个与a关联的单元。
就比如:
- C/C++ code
int i;printf("%d",i);这个还是有值输出的。所以说只有定义(初始化了)才分配了空间?不解!!!
- C/C++ code
int *p;printf("%d",*p);这个就会运行报错。
大牛分析下~~~~
[解决办法]
每个程序可以访问的内存是有限制的
内存未初始化时,其值是随机的,有可能指向任何一块地址空间
如果指向了系统限制访问的内存地址,则会导致程序出错
[解决办法]