当前位置: 代码迷 >> C语言 >> 关于char*
  详细解决方案

关于char*

热度:506   发布时间:2006-11-07 22:11:35.0

楼上各位 你们写的都 运行过吗 ? 好象写的都不对啊 !!!!!!!!!!11


----------------解决方案--------------------------------------------------------
抱歉  抱歉 !!!!没看见还有第页   
----------------解决方案--------------------------------------------------------

各位兄弟,不就是指针和数组的问题吗??
定义了一个指针后,编译器会随机指定一个值,也就是随机指向一个内存地址,如果这个地址内放着重要的数据,你往这个地址写数据,就会造成严重的问题,这个就是所谓的内存泄漏,所以一般定义一个指针后就会它指定一个地址
比如:
char s[30],*c;
c=s;
那为什么s[30],这个数组所在的地址不会是存放重要数据的地址呢,这个问题编译器会给你解决,编译器在执行到char s[30]时,保证给整个数组的内存地址是一个安全的地址,具体怎么实现的,你还是问问盖茨吧。
我们也可以使用函数malloc自己向操作系统申请一段内存,这段内存的有效期知道你调用free函数将它释放,如:
main()
{
char *c;
c = (char*)malloc(30*sizeof(char));
scanf("%s",c);
printf("%s",c);
free(c);
return 0;
}


----------------解决方案--------------------------------------------------------
  相关解决方案