PDMS 发表于 2014-11-19 03:00:33

求教 指针不能直接用变量对其赋值吗?

本帖最后由 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:}

风之残月 发表于 2014-11-19 09:29:45

并不一定要分配空间,可以使用已分配的空间,如变量
你的程序中p 没有明确指向任何地址,所以它的指向的地址是随机的,使用随机的地址一般会错误,如果将*p =x; 改为 p = &x;就可以了,因为它已指向了一个明确且有效的地址

PDMS 发表于 2014-11-19 10:25:40

风之残月 发表于 2014-11-19 09:29
并不一定要分配空间,可以使用已分配的空间,如变量
你的程序中p 没有明确指向任何地址,所以它的指向的地 ...


感谢 指点   弄清楚了      :lol:

woaini92887 发表于 2014-11-19 14:43:03

{:5_100:}我来迟了 我可以回答的
页: [1]
查看完整版本: 求教 指针不能直接用变量对其赋值吗?