实验结论:通过函数参数不能带出动态内存,函数参数虽然为指针,其实是在函数内部的临时变量,只是该指针的初始值是通过调用函数赋值的。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; }
运行结果如下: