0
나는 함수 호출이 완료다차원 배열 초기화 사용하여 포인터
void initArrays(int n,double **a,double **b,double **c) {
a = new double*[n];
for (int i = 0; i < n; i++)
a[i] = new double[n];
b = new double*[n];
for (int i = 0; i < n; i++)
b[i] = new double[n];
c = new double*[n];
for (int i = 0; i < n; i++)
c[i] = new double[n];
}
아래처럼 CPP 동적 2 차원 배열을 초기화하는 기능을 갖고 싶어하지만 내가 함수 인수로주는 포인터를 초기화하지 않습니다. 예를 들어 나는 주요
double **x,**y,**z;
initArrays(3,x,y,z);
에서이 기능은 내가 잘못 여기서 뭐하는 거지
x[0][0]
에 액세스 할 수 호출하면?
가능한 중복 [새를 사용하여 C++에서 2 차원 배열을 선언하는 방법?] (http://stackoverflow.com/questions/936687/how-do-i-declare-a-2d-array-in-c -using-new) – CoryKramer
위의 질문에서 설명한대로 main에서 init이 완료되면 작동합니다. 이것은 init을 main에서 호출되는 함수로 옮길 때 실패했습니다. – AlphaWolf
C++에서'new'를 사용하지 마십시오. 우리는'std :: vector'와'std :: unique_ptr'을 가지고 있습니다. 배열 배열을 2D 배열로 사용하지 말고 크기가'x * y' 인 1D 배열을 사용하고 액세스를 매핑하십시오. – Fytch