#include <stdio.h> int* func() { int a[] = { 1,5 }; return a; } int main() { int* b = func(); printf("%d", b[0]); return 0; }
你动态申请的数组是不会被函数收回的。
虽然释放了,但是里面的值可能还没有被改变,所以输出的值还是有可能是1但这个主要看系统资源分配的频率,如果分配频率快,a的内存的值很快就被覆盖了