이 프로그램에서는 포인터에 대한 포인터로 선언 된 2 개의 행렬을 사용하고 있습니다. 초기에 행렬 B는 행렬 A와 같으며 모든 변경이 행렬 B에 대해 수행됩니다. (다른 값을 계산할 때 그 값을 사용하기 때문에 A의 값을 수정하지 않아야합니다. 직접 수정하면 실제로 얻을 수 있습니다. 잘못된 결과). 결국 두 개의 행렬 값을 교환해야합니다. 내 프로그램은 이미 실행하고 컴파일,하지만 난 포인터를 포인터로 바꾸기
for(i=0;i<n;++i)
for(j=0;j<n;++j)
A[i][j]=B[i][j];
나는 그 최선의 방법이 아니다 알고
을 사용했습니다 행렬 스왑, 그래서 포인터에 의해 내 행렬을 교환 할 수있는 방법이 있는지 궁금합니다. 나는 이미 그것을 직접하려고 노력했다. 하지만 C++ 프로그래밍의 새로운 그리고 난 :(바로 그것을 관리 할 수없는 것이 내 코드의 스케치입니다.
void swap(int **A, int **B){
?
}
main(){
int **A, **B;
*code*
swap(A,B);
}
질문 : 변수 이름으로 만 행렬을 '바꿀'하시겠습니까? 그렇다면 왜 삼자 교환을 사용하지 않습니까? int ** Tmp = A; A = B; B = Tmp; 이렇게하면 B는 이전에 A가 참조한 행렬을 두통없이 참조합니다. – ATaylor