【发布时间】:2016-10-15 20:11:57
【问题描述】:
我有一个数组,其大小在运行时确定。
cout<<"Enter size of array: ";
cin>>size1;
int* scores=new int[size1];
然后我填写这个数组分数。现在我想增加它的大小。我创建了一个新的动态数组。
int* newScores=new int[newSize1];
such that `newSize1 > Size1
现在我将旧乐谱的内容复制到 newScores 中:
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];
}
编译时出现上述错误:error: invalid conversion from ‘int*’ to ‘int’ [-fpermissive]
newScores[size1]=new int;
【问题讨论】:
-
这不是 Java。
newScores[j] = new int;毫无意义。去掉它。那里已经有int的空间。 -
C++ 不是 Java 或 C#。您只需创建对象,例如,使用
int()而不是new int(后者也会使值未初始化)。
标签: c++ arrays dynamic-memory-allocation