gpt4 book ai didi

c++ - 帮助实现一个函数来改变动态数组的大小

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:35:35 26 4
gpt4 key购买 nike

我正在尝试编写一个将动态数组的大小更改为新大小的函数。在我的头文件中,我有:

Image **images; //pointer to a dynamic array of image pointers
int maximum; //size

我想通过分配一个新数组并在不更改其索引的情况下复制值来完成此操作。如果在 newmax 范围之外有非空指针,那么我们就不能这样做。所以这就是我所拥有的:

没有编译或运行时错误。但是,我发现新数组的大小不正确。当我运行以下测试用例时:

我应该得到一个索引越界错误,但系统让它滑动。谁能看到错误?我已经找了几个小时,但找不到任何东西。

最佳答案

  images=newArray;
for (int i =0;i<newmax;i++)
*images[i]=*newArray[i];

这很奇怪。 images 和 newArray 现在相同,因此无需将 newArray 的内容复制回自身。那么删除这个循环?另外,需要添加:

 maximum = newmax;

如果 '1' 是索引,这应该导致

 firstScene->addpicture("red10.bmp", 1, 13, 72);

给出越界错误,而此时它可能会出现段错误?

关于c++ - 帮助实现一个函数来改变动态数组的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4987432/

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