C语言通过函数参数不能带出动态内存的例子。

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

#include <stdio.h>

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

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

运行结果如下:

原文地址:https://www.cnblogs.com/zhouhaibing/p/4309795.html