int
の配列の値をポインターとして使用して、2次元動的配列を作成しようとしています。これを正確に言葉で表現する方法がわからないので、ここにコードがあります。見れば、私がやろうとしていることを理解できるかもしれません。
#include "stdafx.h"
#include <iostream>
using namespace std;
int main(){
const int length =5;
int arr[5]={1,1,3,9,1};
int* AR[length];
for (int i=0; i<length;i++) {
for (int j=0; j<(arr[i]); j++){
AR[i] = new int (arr[i]);
AR[i][j]=93;
cout<<"["<<AR[i][j]<<"] ";
}
cout<<endl;
}
for (int i = 0; i < length; i++) {
for (int j=0; j<arr[i]; j++) {
delete[] AR[i];
delete []&AR;
}
}
return 0;
}
実行するとarr[] < 4
完全に実行されますが、のサイズarr
が4の値を超えると、クラッシュします。理由がわかりますか?