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語言結構體陣列常被用來表示一個擁有相同資料結構的群體,比如一個班的學生 一個車間的職工等。結構體可以儲存不同的資料型別,將他們互相聯絡起來。結構體陣列可以連續儲存多個結構體,和陣列作用相似。比如想定義同一個最小...