读书人

指针有关问题

发布时间: 2012-03-31 13:13:26 作者: rapoo

指针问题求助
main()
{int *p;
*p=6;
}

结果编译能通过,但执行时候错误,为什么会这样?麻烦哪位大哥解释

[解决办法]
指针使用最忌讳的问题
就是不申请空间而直接给其赋值
[解决办法]
从操作系统的执行过程来看,并不检查指针的指向地方是否合法,也不会检查类似带来的野指针(指向不可使用的地址空间)、内存溢出(一般指在顺序访问内存过程中访问到非法的地址空间,例如访问数组)。
另外如果一个变量在定义时不初始化的话,这个变量的值是不确定的(有些环境下会初始化为固定的值,例如Release版一般会为0,Debug版的0xCC),作为指针的变量也不例外。
由此就可以知道上面的程序在执行过程中会发生错误。
指针用法一般有两种情况:
1.首先定义变量然后用指针指向该变量的地址
char ch = 'c ';
char *pChar = &ch;
2.首先定义一个指向NULL的指针变量,然后给它动态分配空间,同时将分配到的空间的地址赋值给指针
char *pCharMem = NULL;
pCharMem = (char *)malloc(100 * sizeof(char));

读书人网 >C语言

热点推荐