C 下内存分配的一个问题

好久没有自己编程了,已经生疏了好多了!下面就是我出现的一个很基础的问题!
程序代码:

这样定义了一个结构

struct aa  
{  
char *ss;  
}bb;  

象下面这么调用总有错!

bb.ss[0]='a';  

但是如果为ss分配内存空间后就可以!

但是如果这样定义

char *str;  

再这样使用

str[0]='a';  

就没有问题

这个问题我一直搞不定,后来上了CSDN和新帆的新闻组问了一下,才得到答案

第二个没有问题,是因为我的运气:)

因为,凡是指针,在定以后都要为他分配内存空间,否则的话,就不知道他会指向什么地方了。如果不知道他指向什么地方就给他随便赋一个值,那样就很危险了!自己想想,如果指针指向系统内部的一些重要的地方,那你的赋值就等于修改了系统,这下可糟糕了,后果是什么,就难以预料了!

您的支持将鼓励我继续创作