【发布时间】:2014-08-19 20:06:44
【问题描述】:
我正在尝试将对象添加到作为参数传递的对象数组中。具体来说,我有一个按钮数组,我正在向按钮数组添加一个后退按钮。我怎样才能正确地做到这一点?当我尝试下面的代码时,从原始指针数组传递的按钮出现了一些奇怪的故障。
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
}
感谢任何帮助。
【问题讨论】:
-
有必要使用数组吗?通常避免使用它们并使用向量。
-
我从来没有看过他们。它们会或多或少地占用大量内存吗?我在具有 3MB RAM 的设备上运行它。
-
是的,它们会比数组消耗更多的内存。我猜可能在您的情况下使用数组是有意义的。
-
显示
createMenu的声明 -
BTW 数组的大小必须在编译时已知。
Button *newButtons[size+1];是非法的(尽管一些编译器将其作为扩展提供)。此外,无法在运行时调整它们的大小。
标签: c++ arrays class pointers object