读书人

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

发布时间: 2012-03-15 11:50:38 作者: rapoo

请问在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掉的指针,叫做野指针。使用了会出错。
对所有的变量,使用之前初始化是一个好习惯。

读书人网 >C语言

热点推荐