私は他の記事を読んだことがありますが、私の問題には完全には答えません。 私は本から配列から要素を削除し、そのコードを適用しようとしています。 私が理解できる限り、私は間違った配列を渡しているか、アドレスで整数を送信しています(その背後にある意味は分かりませんでした)。C++で配列から要素を削除する
#include <iostream>
#include <cstdlib>
using namespace std;
void delete_element(double x[], int& n, int k);
int main()
{
// example of a function
int mass[10]={1,2,3,45,12,87,100,101,999,999};
int len = 10;
for(int i=0;i<10;i++)
{
cout<<mass[i]<<" ";
};
delete_element(mass[10],10&,4);
for(int i=0;i<10;i++)
cout<<mass[i]<<" ";
return 0;
}
void delete_element(double x[], int& n, int k)
{
if(k<1 || k>n)
{
cout<<"Wrong index of k "<<k<<endl;
exit(1); // end program
}
for(int i = k-1;i<n-1;i++)
x[i]=x[i+1];
n--;
}
「int」と「double」は同じではないことに注意してください。このコードはコンパイルされません。また、C++コードではあまり一般的ではありません。 – unwind
delete_element(質量、len、?);通常は変数で数値を送信しないでください –
配列から要素を "削除"することはできません。配列の値を移動することしかできません。 '10 'は、定義されていない振る舞い(segfaultはせいぜい)を引き起こす、10サイズの配列の11番目の要素にアクセスします。' 10& 'は、半分です。' delete_element(mass [10]、10 &,4); ' (実際には削除することは実際にはできません。要素を削除するには実際には削除できません) – BeyelerStudios