gpt4 book ai didi

c++ - 如何在 C++ 中初始化双指针结构数组?

转载 作者:行者123 更新时间:2023-11-27 22:40:22 27 4
gpt4 key购买 nike

我的结构如下,

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 到非常量的转换是错误格式的(自 C++11 起;在此之前不推荐转换)。

关于c++ - 如何在 C++ 中初始化双指针结构数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49492696/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com