如何从另一个函数调用这个void函数?
基本上我想重复调整我的数组。接下来的函数是假设搜索数组中的下一个可用位置。一旦下一个命中10是我希望它调用重复的最大容量。如果在下一个函数中发现数组已满,基本上调用重复。如何从另一个函数调用这个void函数?
问题是,当我得到循环到10个数字,它在11日失败。在第10个元素进入后,它进入重复函数,然后进入指针,然后通过数组,然后它只是保持循环,所以当我使用我的函数来查看元素的总数仍然说10 ,这意味着maxsize
没有变化。我不懂为什么?
void ProgramOne<Type>::Next(Type & y)
{
if (!IsFull())
{
if (count < maxsize)
{
bag[count] = y;
count++;
}
}
else
{
Duplicate();
}
}
我试图把这种
void ProgramOne<Type>::Duplicate()
{
int *bagB = new int[maxsize * 2];
for (int i = 0; i < maxsize; i++)
{
bagB[i] = bag[i];
}
delete[] bag;
bag = bagB;
}
你Duplicate()
功能失效它完成复制原始元素后更新maxsize
。在它返回之前,它应该将maxsize
更新为它为新的bag
分配的内容。
delete[] bag;
bag = bagB;
maxsize *= 2;
哇,这是它现在完美的作品谢谢你:O – 2014-09-19 05:04:27
你是非常欢迎。不过,@TonyD首先发现了我从评论中看到的东西。 – jxh 2014-09-19 05:05:36
@TonyD谢谢。 – 2014-09-19 05:12:17
'Duplicate'似乎有一些缺失的大括号。 – jxh 2014-09-19 02:34:38
你尝试了什么,为什么它没有工作? – jxh 2014-09-19 02:36:08
我试着让一个int让我们先说f,g然后我认为这需要一个输入,并且必须在main中。然后,我尝试了(包,大小),但包是一个指针,所以不会工作。 – 2014-09-19 02:45:51