#define SIZE_20M (20*1024*1024) void func_a() { char *temp = malloc(SIZE_20M) return; } void func_b() { char temp[SIZE_20M]; //...do something using temp return; }
关于这段代码,下列说法正确的是
#define SIZE_20M (20*1024*1024) void func_a() { char *temp = malloc(SIZE_20M) return; } void func_b() { char temp[SIZE_20M]; //...do something using temp return; }
func_a 获得临时内存的方式效率通常更高。
func_b 使用了太多的栈,程序可能会在运行时候崩溃。
func_b 存在内存泄露
func_a 和func_b 分配的内存会自动初始化0
char *temp = (char *)malloc(SIZE_20M);