C 怎麼在結構體裡定義動態陣列

時間 2022-02-28 00:50:07

1樓:風若遠去何人留

可以在結構體中新增指標類成員變數,並在成員函式中實現動態陣列的分配。

以下以乙個僅實現整型動態陣列,不包含其它功能的類為例做說明。

class array //類名

else

}~array()};

2樓:水焱新火

首先,第一種情況不會出現 ,所謂結構體可以理解為一種特殊的,預設內部public的,並且不寫方法和函式的類,當然你寫方法也可以編譯的,所以他就是乙個類,而如果是陣列在結構體中,那麼指揮定義乙個指標,而不會定義成例項陣列,用的時候外部new,所以第一種情況會寫成類,然後在建構函式裡面new,析構裡面delete

第二,是可以的,你寫錯的原因應該是在for'裡面,因為你的結構體都是系統的型別,不是指標,是可以直接new得到,也就是說,你在new gcell的時候就已經完全搞定了,不需要for,如果是想要修改的話,應該是(*cell[i]).ran.min=123;這樣,而不是再new

3樓:匿名使用者

template

struct range;

template

struct gcell;

int main()

c++中在結構體中定義的陣列

4樓:

根據提示資訊,這裡是相當於定義了乙個大小為0的陣列(非標準擴充套件,應該有的編譯器可以這麼幹)。

我的分析是:

1.你的c編譯器將大小為0的陣列,看成是乙個指標,即uint8 data相當於uint8* data;

2.你的c++編譯器是不允許這麼做的,因為陣列大小為0時,copy和賦值操作,會引發錯誤。

5樓:亞馬遜選品管家

沒法這樣定義,你可以使用指標,然後new乙個陣列給他,例如:

struct a

a a;

a.pdata = new uint8[100];

6樓:

陣列內應該有元素,否則會報錯……

7樓:

不能定義未知大小的陣列

8樓:滄海雄風

在**你也不能定義 陣列大小未知的 靜態陣列

c++中的如何初始化結構體物件? 用new定義的動態結構體陣列如何同時初始化?

9樓:

e.g.

struct student

;student st[2]=,};

//和陣列的初始化差不多。

--如果是指標的話,是無法在定義時被初始化的。

student *st1=new student[2];

就像例項化類的物件一樣,指標物件也是不能再定義時被初始化的。

C裡面動態定義陣列

動態陣列?arraylist?如果是指arraylist的話.system.collections.arraylist newarr new system.collections.arraylist 定義乙個新的陣列 object o new system.data.dataset 陣列中可以予ob...

c語言結構體定義,C語言結構體定義

c語言結構體定義 struct為結構體關鍵字,tag為結構體的標誌,member list為結構體成員列表,其必須列出其所有成員 variable list為此結構體宣告的變數。結構體是c語言中聚合資料型別 aggregatedatatype 的一類。結構體可以被宣告為變數 指標或陣列等,用以實現較...

C語言結構體定義,C語言結構體定義 25

chanrich輕輕 所謂結構體陣列,是指陣列中的每個元素都是一個結構體。在實際應用中,c語言結構體陣列常被用來表示一個擁有相同資料結構的群體,比如一個班的學生 一個車間的職工等。結構體可以儲存不同的資料型別,將他們互相聯絡起來。結構體陣列可以連續儲存多個結構體,和陣列作用相似。比如想定義同一個最小...