gpt4 book ai didi

c++ - 如何添加到对象数组指针C++

转载 作者:行者123 更新时间:2023-11-28 00:27:07 25 4
gpt4 key购买 nike

我正在尝试将一个对象添加到作为参数传递的对象数组中。具体来说,我有一个按钮数组,我正在向按钮数组添加一个后退按钮。我怎样才能正确地做到这一点?当我尝试下面的代码时,从原始指针数组传递的按钮出现了一些奇怪的故障。

int createMenu(Button buttons[], int size)
{
//Stuff here
}

int menu(Button buttons[], int size, bool back)
{
Button * newButtons[size + 1];
for (int i = 1; i <= size; i++)
*newButtons[i] = buttons[i];
Button back(25, 19, "Back"); //Creates back button object
*newButtons[0] = back;
return createMenu(*newButtons, size + 1);
//Makes menu with the back button
}

感谢任何帮助。

最佳答案

在您的循环中,您引用了超出其边界的按钮 [size]。您还可以取消引用 newButtons 的成员而不对其进行初始化。当 createMenu 需要一个按钮数组时,您尝试传递一个指针数组。应该是这样的:

int menu(Button buttons[], int size, bool back)
{
Button * newButtons = new Button[size + 1];
for (int i = 0; i < size; i++)
newButtons[i + 1] = buttons[i];
newButtons[0] = Button(25, 19, "Back");
int result = createMenu(newButtons, size + 1);
delete [] newButtons;
return result;
}

关于c++ - 如何添加到对象数组指针C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24473411/

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