#include <stdio.h>
#include<malloc.h>
int main()
{
int *p;
//p=(int *)malloc(sizeof(int));
*p=5;
printf("%p %d\n",p,*p);
//free(p);
//*p=6;
//printf("%p %d\n",p,*p);
return 0;
}
提示p沒有初始化,沒有任何輸出
而下面程式執行得到合理的結果
#include <stdio.h>
#include<malloc.h>
int main()
{
int *p;
p=(int *)malloc(sizeof(int));
*p=5;
printf("%p %d\n",p,*p);
free(p);
//*p=6;
printf("%p %d\n",p,*p);
return 0;
}
0x55e7822282a0 5
0x55e7822282a0 0
但是下面程式釋放了申請了記憶體為什么*P還會被賦值6?
#include <stdio.h>
#include<malloc.h>
int main()
{
int *p;
p=(int *)malloc(sizeof(int));
*p=5;
printf("%p %d\n",p,*p);
free(p);
*p=6;
printf("%p %d\n",p,*p);
return 0;
}
0x55e5857e22a0 5
0x55e5857e22a0 6
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/195655.html
標籤:C語言
上一篇:模板中如何呼叫解構式?
下一篇:求助大佬
