tôi có một chương trình mà trông giống như sau:Chuyển đổi mảng đa chiều đối với con trỏ trong C++
double[4][4] startMatrix;
double[4][4] inverseMatrix;
initialize(startMatrix) //this puts the information I want in startMatrix
bây giờ tôi muốn để tính toán nghịch đảo của startMatrix và đặt nó vào inverseMatrix. Tôi có một chức năng thư viện cho mục đích này có prototype như sau:
void MatrixInversion(double** A, int order, double** B)
mà có nghịch đảo của A và đặt nó trong B. Vấn đề là tôi cần phải biết làm thế nào để chuyển đổi kép [4] [ 4] thành một đôi ** để cung cấp cho hàm. Tôi đã thử chỉ làm điều đó "cách rõ ràng":
MatrixInversion((double**)startMatrix, 4, (double**)inverseMatrix))
nhưng điều đó dường như không hoạt động. Đó có phải là cách thực sự để làm điều đó không?
& startMatrix, 4 & nghịch đảoMatrix –
Tại sao bạn không tạo một lớp ma trận, thay vì làm theo cách C? (Truyền các đối tượng vào các hàm, thay vì sau đó gọi các phương thức trên các đối tượng) – GManNickG
@GMan: Vì OP cho biết hàm này là "một hàm thư viện", nên hầu như không có quyền tự do thay đổi giao diện. Lớp học hoặc không có lớp học, tại một số điểm, anh ta sẽ phải có được 'double **' thích hợp để chuyển sang hàm. – AnT