以下是引用q934623325在2015-5-24 18:52:44的发言:
#include<stdio.h>
      2 #include<stdlib.h>
      3 void f (int *p)
      4 {
      5   p=malloc(siziof(int));
      6   *p=12;
      7 }
      8 int main ()
      9 {
     10    int *p;
     11    f(p);
     12    printf("%d\n",*P);
     13    return 0 ;
     14 }
你的程序为什么错?你只需要自问自答这个问题即可:函数f()中的p跟main()中的p是同一个实体吗?如果实在还不明白,就把指针的声明int*改掉,返回原始的int形式看看,自己一定遇到过并解答过的。
记住:指针的类型int*,其实是一个typedef,无非就是PINT这样的一个自定义类型,所以它的用法跟PINT p是一样,亦即与int p是一样的。
指针只是一个普通的变量而已。