[英]c how to make a dynamic array pointer in a struct
我正在接受用戶輸入的數組中元素的數量。 該數組在我的結構“ Polymer”中
struct Polymer
{
int length;
struct Monomer *monomer;
}polymer;
總的來說,我正在創建一個新的單體數組指針,並將“聚合物”中的單體指針設置為其
struct Monomer *monomers[size];
polymer.monomer = momomers;
我收到錯誤“我從不兼容的指針類型分配”,我認為這是因為我們正在將單體數組指針轉換為單體。 如何在結構中將其聲明為單體數組指針?
當您可能需要一個單體數組時,您將聲明一個單體指針 數組 。 刪除*
:
struct Monomer monomers[size];
polymer.monomer = momomers;
struct Monomer *monomers[size];
polymer.monomer = momomers;
monomers
是一個指針數組 。 它們沒有指向任何有效位置,並且具有垃圾值。 而Polymer::monomer
是指針 。 指針數組不僅僅與指針兼容。
而是嘗試-
struct Monomer monomers[size];
polymer.monomer = momomers; // 2
現在,該語句2是有效的,因為數組會衰減為指針。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.