[英]How initialize double pointer struct array in C++?
我的結構如下
struct myStruct
{
CString a;
int b;
CString c;
int d;
}
char **數組可以按以下方式初始化,
char **choices = (char *[]){ "New Game", "Continue Game", "Exit" };
同樣如何初始化雙指針結構數組。 我的要求是我不應該使用new或malloc進行動態內存分配。
我需要下面的一種初始化。
myStruct** arr ={
....
....
....
....
};
首先創建一些myStruct
對象:
myStruct ms1;
myStruct ms2;
然后創建一個指向myStruct
的指針數組:
myStruct* pointerArray[] = {&ms1, &ms2};
最后,您可以將指針指向該數組的第一個元素。 這是沒有動態分配的“雙指針結構數組”。
myStruct** arr = pointerArray;
char **choices = (char *[]){ "New Game", "Continue Game", "Exit" };
這條線有一些問題。
首先,您使用的初始化語法在C ++中格式錯誤。 復合文字是C99的功能,不是C ++語言。
其次,將字符串文字轉換為非常量char*
。 字符串文字在C ++中是const,並且這種從const到非const的轉換格式不正確(自C ++ 11起;在不贊成使用此轉換之前)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.