3

C ++で配列を宣言しようとしていますが、このエラーが発生し続けます。

エラーC2440:'初期化中':'int*'から'int[]'に変換できません

この行のために

int b[] = new int[elements]; 

完全なコード

int* reverseArray (int a[] ,int elements)
{
    int *pointer;
    int x= elements-1;
    int b[] = new int[elements];
    pointer=b[];
    for (int i= 0; i < elements; i++)
    {
        b[i] = a[x--];
    }
    return pointer;
}
4

2 に答える 2

9

newポインタを返すので、変更する必要があります

int b[] = new int[elements];

int* b = new int[elements];

削除pointerして返すだけbでよいので、

int* reverseArray (int a[] ,int elements)
{
  int x = elements-1;
  int* b = new int[elements];
  for (int i = 0; i < elements; ++i)
    b[i] = a[x--];
  return b;
}

ただし、実際にはの使用を検討する必要がありますstd::vector。、を使用しstd::vectorて配列を逆にする場合は、std::reversefromを使用するだけ<algorithm>です。

于 2012-05-03T23:19:13.947 に答える
0

ベクトルを使用する-はるかに使いやすい

于 2012-05-03T23:20:31.353 に答える