实验结论:通过函数参数不能带出动态内存,函数参数虽然为指针,其实是在函数内部的临时变量,只是该指针的初始值是通过调用函数赋值的。C语言函数参数都是传值的。

#include <stdio.h>

void getversion(char *pcVer)
{
    printf("\r\ngo in getversion \r\n");
    printf("pcVer=0x%x  &pcVer=0x%x \r\n", pcVer, &pcVer);
    
    pcVer = malloc(10);
    printf("after malloc \r\n");
    printf("pcVer=0x%x  &pcVer=0x%x \r\n", pcVer, &pcVer);
    
    return ;
}

int main()
{
    char  *pcVer = (char *)0x1000;
    
    printf("in main \r\n");
    
    printf("pcVer=0x%x  &pcVer=0x%x \r\n", pcVer, &pcVer);
    
    getversion(pcVer);
    
    printf("\r\nafter getversion().  \r\n");
    
    printf("pcVer=0x%x. ", pcVer);
    
    return 0;
}

运行结果如下:

 

posted on 2015-03-02 21:35  爱编程的小兵  阅读(869)  评论(0编辑  收藏  举报