求教 指针不能直接用变量对其赋值吗?
本帖最后由 PDMS 于 2014-11-19 03:02 编辑声明了一个指针 然后令其等于一个变量编译通过 但是运行出错
#include <stdio.h>
#include<stdlib.h>
int *p ;
void fun(int x)
{
*p = x ;
printf(" it is %d\n",*p) ;
}
int main()
{
fun(5) ;
return 0;
}
如果先分配点空间 加上 p=(int*)malloc(sizeof(x) ); 或者 p =new int(x) ; 就可以运行了请问这个分配是必须有的吗 ?
{:9_239:}
并不一定要分配空间,可以使用已分配的空间,如变量
你的程序中p 没有明确指向任何地址,所以它的指向的地址是随机的,使用随机的地址一般会错误,如果将*p =x; 改为 p = &x;就可以了,因为它已指向了一个明确且有效的地址 风之残月 发表于 2014-11-19 09:29
并不一定要分配空间,可以使用已分配的空间,如变量
你的程序中p 没有明确指向任何地址,所以它的指向的地 ...
感谢 指点 弄清楚了 :lol: {:5_100:}我来迟了 我可以回答的
页:
[1]