use*_*300 2 c memory-management
我有一个问题......让我说我有以下部分代码:
int *a,*a1,*a2;
for (i=1; i<=2; i++) {
a=malloc(sizeof(int));
if (i==1) a1=a;
else if (i==2) a2=a;
}
*a1=5;
*a2=4;
Run Code Online (Sandbox Code Playgroud)
所以我的问题是,如果我使用printf打印a1和a2变量a1将得到值5而a2值为4?所以,如果我使用malloc来分配内存和该内存空间中的一个点并再次使用malloc来分配内存然后指向内存的不同部分,但内存的第一部分仍然存在?或者如果我再次使用malloc,它将擦除内存的第一部分,它将写入新的内存部分
每次调用都会malloc返回一个指向不同内存的指针,直到你调用free释放该内存为止.