C语言局部变量的内存分配
#include<stdio.h>
int main(){
for(int i = 0;i<10;i++){
int a;
printf("%x\n",&a);
}
}
运行结果为:
64fe18
64fe18
64fe18
64fe18
64fe18
64fe18
64fe18
64fe18
64fe18
64fe18
程序中的循环块内的int a属于局部变量,存放在栈中,每次循环a所分配的地址是相同的。若要使每次分配的地址不同,应使用malloc函数。
int *a = (int *)malloc(sizeof(int));
浙公网安备 33010602011771号