C에서 다차원 배열을 포인터로 변환
C에서 다차원 배열은 포인터와 직접 호환되지 않습니다. double**을 사용하는 라이브러리 함수를 사용하려고 할 때 단순 형변환을 사용하여 double4 배열을 변환하면 오류가 발생할 수 있습니다.
이 문제를 해결하려면 배열을 함수의 인터페이스에 맞게 조정해야 합니다. 전체 배열을 double**로 캐스팅하는 대신 각 행의 시작 부분을 가리키는 임시 "인덱스" 배열을 만듭니다.
double* startRows[4] = { startMatrix[0], startMatrix[1], startMatrix[2], startMatrix[3] };
double* inverseRows[4] = { /* same pattern for inverseMatrix */ };
이 "인덱스" 배열을 함수에 인수로 전달합니다.
MatrixInversion(startRows, 4, inverseRows);
After 함수가 완료되면 변환된 결과는 inverseMatrix 배열 내에 올바르게 상주하게 됩니다. 임시 "인덱스" 배열은 삭제할 수 있습니다. 이 접근 방식을 사용하면 원래 배열의 구조나 함수의 인터페이스를 수정하지 않고도 성공적인 포인터 기반 행렬 작업이 가능합니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3