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

实验结论:通过函数参数不能带出动态内存,函数参数即使为指针,其实是在函数内部的临时变量,只是该指针的初叶值是因而调用函数赋值的。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;
}

运行结果如下:

C语言 1