首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

请教在c中指针变量使用前需要初始化吗

2012-03-15 
请问在c中指针变量使用前需要初始化吗?C++规定指针变量必须初始化后,才可以使用,C一样吗?,但我看很多例子

请问在c中指针变量使用前需要初始化吗?
C++规定指针变量必须初始化后,才可以使用,C一样吗?,但我看很多例子都没有初始化。

如:

#include <stdio.h>

#include <string.h>

void   main()

{  

    char   *p,s[20];

  gets(s);     /*   这个正确*/

  gets(p);     /*这句在C++编译器里出错,在C编译器里可以吗?   */

}



[解决办法]
CRT中的很多函数虽然是以指针为参数,但是空间需要用户分配的。因此如果要使用栈空间的话,那么就
char s[20];
gets(s);//(注意输入不要超过19个字符哦)
如果使用堆空间的话,那么就
char *p = (char *)malloc(20 * sizeof(char));
gets(p);//(注意输入不要超过19个字符哦)
未经过初始化的指针或者是已经delete掉的指针,叫做野指针。使用了会出错。
对所有的变量,使用之前初始化是一个好习惯。

热点排行