函数外有分配内存的 char *outside,函数内有分配内存的 char *inside,如果先将 outside 所指的内存释放掉,然后将 inside 指针赋值给 outside,可行吗?函数结束后会被释放吗?有没有风险。
資深大佬 : ReputationZh 1
示例:
#include <stdio.h> #include <stdlib.h> #include <string.h> char *ptrToptr(char *outside) { char *inside = NULL; inside = (char *)malloc(200 * sizeof(char)); strcpy(inside, "inside"); free(outside); return inside; } int main() { char *outside = NULL; outside = (char *)malloc(100 * sizeof(char)); strcpy(outside, "outside"); outside = ptrToptr(outside); printf("%sn", outside); free(outside); }
大佬有話說 (15)