struct stu
{
int a[]; //!!
}; //--丟失逗號
int main()
int i=0,j=0;
struct stu *p;
// p=malloc(10*sizeof(p)); //為p開闢空間,成功
p= (stu*)malloc(10*sizeof(stu));//分配後的空間需要強轉為stu* 才可以賦值給P型別一樣。
if(p==NULL){ //檢查申請是否成功
return false;
}
//p->a=malloc(10*sizeof(int)); //不知道成功沒----對於struct,對齊的大小也是最大的基本元素的對齊大小,物件的大小需要考慮元素的對齊,並且需要是最大基本元素的整數倍。(參考下struct和union的記憶體對齊方式)
//所以不必再為結構體內部申請空間。 另外int *a, 申請多大的空間也沒用啊 就一個int型 所以結構體裡面定義為int a[]或者定義結構體陣列。
for(i=0;i
for(j=0;j
scanf("%d",p->a+j); // error C2059: syntax error : "("----info 不知道你是怎麼定義的,scanf("%d",p->a+j);
return 0;
struct stu
{
int a[]; //!!
}; //--丟失逗號
int main()
{
int i=0,j=0;
struct stu *p;
// p=malloc(10*sizeof(p)); //為p開闢空間,成功
p= (stu*)malloc(10*sizeof(stu));//分配後的空間需要強轉為stu* 才可以賦值給P型別一樣。
if(p==NULL){ //檢查申請是否成功
return false;
}
//p->a=malloc(10*sizeof(int)); //不知道成功沒----對於struct,對齊的大小也是最大的基本元素的對齊大小,物件的大小需要考慮元素的對齊,並且需要是最大基本元素的整數倍。(參考下struct和union的記憶體對齊方式)
//所以不必再為結構體內部申請空間。 另外int *a, 申請多大的空間也沒用啊 就一個int型 所以結構體裡面定義為int a[]或者定義結構體陣列。
for(i=0;i
for(j=0;j
scanf("%d",p->a+j); // error C2059: syntax error : "("----info 不知道你是怎麼定義的,scanf("%d",p->a+j);
}
}
return 0;
}