读书人

分配空间解决思路

发布时间: 2012-03-30 17:32:09 作者: rapoo

分配空间

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);


这个就会运行报错。

大牛分析下~~~~






[解决办法]
每个程序可以访问的内存是有限制的
内存未初始化时,其值是随机的,有可能指向任何一块地址空间
如果指向了系统限制访问的内存地址,则会导致程序出错
[解决办法]
探讨
引用:

未初始化时,指针只是一个变量,未指向任何内存地址。这样理解对不对,偶也来学习一下。


嗯,我认为是这个样子的,只是一个指针变量而已,就像声明了int i;一样。
但是谭老的说法如我发帖中所说。

读书人网 >C语言

热点推荐