簡體   English   中英

如何在C ++中初始化雙指針結構數組?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM