Dạ chào các anh,chị!
Cho em hỏi bài sau :
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
struct SDiem2D
{
int m_nX;
int m_nY;
int *p;
};
int main()
{
SDiem2D d1, *d2;
d1.m_nX = 12;
d1.m_nY = 4;
d1.p = (int*)malloc(sizeof(int));
*d1.p = 15;
d2 = (SDiem2D*)malloc(sizeof(d2));
d2->p = (int*)malloc(sizeof(int));
d2->m_nX = d1.m_nX;
d2->m_nY = d1.m_nY;
*(d2->p) = *d1.p;
printf("\n D(%d,%d,%d)", d2->m_nX, d2->m_nY, *(d2->p));
free(d1.p);
free(d2->p);
free(d2);
getch();
return 0;
}
tuy chạy được nhưng lại có thông báo “cảnh báo”(VS 2010). Chỉ khi bỏ giải phóng con trỏ thì chương trình mới chạy bình thường.Xin cho em hỏi chương trình trên bị gì? Xin cảm ơn!





83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?