日期:2014-05-16  浏览次数:20658 次

第二段代码的赋值为什么不行?
C/C++ code

#include "stdio.h"

void f(int* q)
{
    *q=10;    
}

int main()
{
    int p;
    f((int*)&p);
    printf("%d\n",p);//这个可以
    return 0;
}



C/C++ code

void task(void* p)
{
    *(int*)&p=10;
}

int main()
{
    int val=5;
    void* pV = &val;
    void** p = &pV;
    printf("%p\n",&val);
    printf("%p\n",*p);
    task(*p);
    printf("%d\n",val);
    return 0;
}




------解决方案--------------------
函数里*p即可