それぞれが4つの要素を持つ2つの配列を作成する必要があります。 1つの配列にはユーザからの値が4つあり、もう1つの配列には最初の配列の要素へのポインタが含まれています。このライン上のC++ポインタの配列が割り当てられない
array type 'int *[4]' is not assignable
:私は、次のエラーを取得しておく。ここ
my_ptrs = &my_ints;
は私のコードです:
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int my_ints[4];
int *my_ptrs[4];
float temp;
int num;
for (int x=0; x< 4; x++)
{
cout << "Enter Integer:" << endl;
cin >> num;
my_ints[x] = num;
}
my_ptrs = &my_ints;
for(int k=0; k<=3; k++)
{
for(int j=k+1; j<=3; j++)
{
if(my_ptrs[k]>my_ptrs[j])
{
temp=*my_ptrs[k];
my_ptrs[k]=my_ptrs[j];
*my_ptrs[j]=temp;
}
}
cout << my_ptrs[k] << " ";
}
return 0;
}
ありがとう!余分な質問:my_ptrs配列を昇順に印刷したい、私の最後のforループについて間違っているもの – Scott
ポインタが指している値を入れ替えるか、ポインタ自体を入れ替える必要があります。 forループは、もう一方の半分の半分をしようとしています。それはうまくいかないでしょう。中間の割り当ては、おそらく '* my_ptrs [k] = * my_ptrs [j]; 'でなければならず、' temp'は 'int'でなければなりません。とにかく、「一時」が「フロート」になるのはまったく意味がありません。 –