#include<stdio.h> #include<stdlib.h> #include<string.h> void GetMemory(char * &p, int num) { p = (char *)malloc(sizeof(char) * num); } void main(void) { char *str = NULL; GetMemory(str, 10);// str 仍然为 NULL if(str==NULL)printf("依然为空"); else printf("%d",strlen(str)); printf("%s",str); } 本程序使用指针引用可以传递内存 #include<stdio.h> #include<stdlib.h> #include<string.h> void GetMemory(char * p, int num) { p = (char *)malloc(sizeof(char) * num); } void main(void) { char *str = NULL; GetMemory(str, 10);// str 仍然为 NULL if(str==NULL)printf("依然为空"); else printf("%d",strlen(str)); } 依然为空NULL 申请内存 可以使用指向指针的指针 或者引用指针 或者使用return