回覆列表
  • 1 # 使用者8852944140293

    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;

    }

  • 中秋節和大豐收的關聯?
  • Skylight漫遊車和Mini Bee概念專案對NASA有怎樣的意義?