2 차원 동적 배열을 만드는 함수를 만들고 싶습니다.2 차원 동적 배열을 만드는 함수
#include<iostream>
using namespace std;
void make_mat (double *** , int, int);
int main(){
int m = 3, n = 4;
double **a;
make_mat(&a,m,n);
for (int i = 0; i < m; i++)
for (int j = 0; j < m; j++)
cin >> a[i][j];
for (int i = 0; i < m; i++){
for (int j = 0; j < m; j++)
cout << a[i][j] << '\t';
cout << endl;
}
return 0;
system("pause");
}
void make_mat(double ***x , int m , int n){
*x = new double *[m];
for (int i = 0; i < m; i++){
*x[i] = new double [n];
}
}
이 코드에 어떤 구문 오류가 없다하지만 난 컴파일 한 후 오류를 다음 얻을 : 그래서 내가 쓴 ConsoleApplication20.exe에서 0x003657E6에서
처리되지 않은 예외 : 가 0xc0000005 : 액세스 위반 쓰기 위치 0xCCCCCCCC.
완전히 2 차원 동적 배열을 만드는 함수를 만드는 좋은 방법은 아닙니다. 위의 코드에 더 좋은 아이디어 나 수정이 있습니까?
표준 C++에서는 gloval'void main()'정의가 잘못되었습니다. 비표준'main()'함수 타입을 사용할 특별한 이유가 없다면'int main()'을 사용해야합니다. – MikeCAT
좋습니다. 지금 편집하겠습니다. –
예, 더 좋은 아이디어입니다. 비행'std :: vector'를 사용하십시오. –