gpt4 book ai didi

c++ - 从动态数组复制到 C++ fpermissive 中的另一个动态数组

转载 作者:行者123 更新时间:2023-11-27 22:48:43 24 4
gpt4 key购买 nike

我有一个数组,其大小在运行时确定。

cout<<"Enter size of array: ";
cin>>size1;
int* scores=new int[size1];

然后我填写这个数组分数。现在我想增加它的大小。我创建了一个新的动态数组。

int* newScores=new int[newSize1];  
such that `newSize1 > Size1

现在我将旧乐谱的内容复制到新乐谱中:

for(int i=0; i<Size1;i++)
{newScores[i] = scores[i];
}

现在我必须要求 newScores 的剩余元素添加到它。我做了:

for(int j=size1;j<newSize1;j++)
{
newScores[j]=new int;
cout<<"Enter new score: ";
cin>>newScores[j];
}

当我编译它时,我得到了上面的错误:
错误:从“int*”到“int”的无效转换 [-fpermissive]
newScores[size1]=new int;

最佳答案

newScores[j]=new int;是一个错误,而且没有必要。 newscores[j]是lvlalue int , 而 new int返回 int* .但是你已经不需要分配它了——你在 int* newScores=new int[newSize1]; 中做了表达。

您可以使用 std::vector<int> 来避免麻烦.当您向其中插入元素时,它会自动调整自身大小(使用 push_back ),您不必担心自己释放内存。

关于c++ - 从动态数组复制到 C++ fpermissive 中的另一个动态数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40063739/

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