この質問のタイトルは不明ですが、私がしようとしているのは配列{1、4、7}とその配列を{1,4,7,1,4,7}に変換します。新しい配列を作成して指し示すようにC++配列を拡張する
#include <iostream>
using namespace std;
void repeatArray(double* arr, int size)
{
double* newArr = new double[size*2];
double* ptr = newArr;
int counter = 0;
for (int j = 0; j < 2; j++)
{
for (int i = 0; i < size; i++)
{
newArr[counter] = arr[i];
counter++;
}
}
arr = ptr;
}
int main()
{
int SIZE = 3;
double* myArray = new double[SIZE];
for (int i=0; i<SIZE; i++)
myArray[i] = (i+1)*2;
repeatArray(myArray, SIZE);
for (int i=0; i<SIZE*2; i++)
cout << myArray[i] << endl;
delete[] myArray;
myArray = nullptr;
return 0;
}
上記のコードは、 "2,4,6、6.95327e-310,6,6"を出力します。それは "2,4,6,2,4,6"でなければなりません。しかし、コードは、SIZEが3以外のときに機能します。
デバッガを使用してみますか? – CinCout
試したrealloc()? –