#include
#include
struct A{
int num[3];
};
int main()
{
int i,j;
struct A *a = (struct A *)calloc(3,sizeof(struct A));
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
a[i].num[j] = (int *)calloc(1,sizeof(int));
}
for(i=0;i<3;i++)
free(a[i].num[j]); //編譯器編譯顯示這裡出錯
free(a);
return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
int i,j;
struct A *a = (struct A *)calloc(3,sizeof(struct A));
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
int * ptr = (int *)calloc(1,sizeof(int));
a[i].num[j] = (int)ptr;
}
}
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
free((int*)a[i].num[j]); //編譯器編譯顯示這裡出錯
}
}
free(a);
return 0;
}
你這問題陷阱太多了:)
我是按照你想在num數組中存儲指針處理的。