例如定义
char *p=(cahr *)malloc(10*sizeof(char));
strcpy(p, "这是为什么呢?\n");
return p;
这里该怎样释放p的内存空间呢? 把free(p)放在return之后 ,它不会执行这一行代码的啊!
例如定义
char *p=(cahr *)malloc(10*sizeof(char));
strcpy(p, "这是为什么呢?\n");
return p;
这里该怎样释放p的内存空间呢? 把free(p)放在return之后 ,它不会执行这一行代码的啊!
这种情况由调用者负责释放(例如
strdup
函数),或者你再提供一个用于释放你返回的东西的接口(很多库的做法)。