我對C++仍然很陌生,所以這對我來說是一個學習過程。此外,我知道我應該開始使用矢量做到這一點,但我有一個指定數組所以我想編寫一個函數,消除陣列中的所有元素重複練習,但我收到錯誤從數組中刪除多個元素並創建一個動態數組C++
C2100:非法的間接
,如果有人能在正確的方向
int main()
{
int *t;
int removel[9] = { 1, 1, 1, 2, 3, 4, 5, 6, 6, };
t = removeAll(removel, 9, 1);
for (int i = 0; i < 8; i++)
cout << t[i] << " ";
}
int* removeAll(int list[], int listlength, int removeitem)
{
int count = 0;
int* list2;
int removeindex;
int length;
int tempindex;
for (int i = 0; i < listlength; i++)
{
if (removeitem == list[i])
count++;
}
length = listlength - (count + 1);
list2 = new int[length];
int j;
while (j<=length)
{
remove_if(list[0], list[listlength - 1], removeitem);
for (j = 0; j < length; j++)
if (list[j] == NULL)// not sure what the remove_if func puts inplace of the removed element
continue;
else
list2[j] = list[j];
}
return list2;
}
#1在你需要它們之前不要聲明你的變量。 – LogicStuff
使用矢量。我沒有看到你想要使用數組的理由。 Array的大小是固定的。 – Auriga
它爲我正在使用的教科書的練習,只是試圖學習如何完成這項任務。 – cj881