gpt4 book ai didi

C++ 返回指向二维字符数组的指针

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:44:25 27 4
gpt4 key购买 nike

我有一个对象,它有一个二维字符数组作为属性。

我想创建一个访问器方法,它能够返回指向这个二维数组的指针。

我已经像这样声明了二维数组:

#define PRESET_LEN 15
#define NO_PRESETS 8

char camPresets[NO_PRESETS][PRESET_LEN];

作为 C++ 的新手,我在尝试弄清楚方法声明时遇到了一些麻烦。

到目前为止,我在标题中有这个:

char** getPresetsForCamera(int cam);

这在 cpp 中

char** DataManager::getPresetsForCamera(int cam)
{
if(currentCam != cam)
load(cam);

return camPresets;
}

但它不编译。我显然还不明白如何正确使用指针,至少对于二维数组,我想我可以只写“return &camPresets;”返回数组的地址,但我错了。请有人告诉我哪里出错了。谢谢,瑞克。

最佳答案

正确的丑陋语法是:

char (&DataManager::getPresetsForCamera())[NO_PRESETS][PRESET_LEN]
{
if (currentCam != cam)
load(cam);
return camPresets;
}

可以用 typedef 简化:

typedef char camPresetsType[NO_PRESETS][PRESET_LEN];

camPresetsType& getPresetsForCamera();

但我真的建议使用 std::array 或自定义类。

关于C++ 返回指向二维字符数组的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23809888/

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