crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Матрицы, действия с матрицами
PunX
  опции профиля:
сообщение 10.5.2010, 15:46
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 56
Регистрация: 12.4.2009
Из: Димитровград
Пользователь №: 676

Спасибо сказали: 0 раз(а)




Репутация:   0  


Здравствуйте, необходимо реализовать умножение уматриц делаю следующим образом:
matrix.h
void submatr(double** a, double** b, double** c, int row, int col,int N){
    for(int i=0; i<row;i++)
        for(int j=0;j<col;j++)
        {
        c[i][j]=0;
        for(int k=0;k<N;k++)
            c[i][j]+=(a[i][k]*b[k][j]);
    }
}

main.cpp
double a[3][4]={{1,1,1,1},{1,1,1,1},{1,1,1,1}};
double b[4][3]={{1,1,1},{1,1,1},{1,1,1}};
double c[3][3];
submatr(a,b,c,3,3);

и получаю ошибку:
error: cannot convert 'double (*)[4]' to 'double**' for argument '1' to 'void submatr(double**, double**, double**, int, int, int)'
где и что я неправильно делаю?

Сообщение отредактировал PunX - 10.5.2010, 15:52
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kibsoft
  опции профиля:
сообщение 10.5.2010, 19:32
Сообщение #2


Участник
**

Группа: Участник
Сообщений: 180
Регистрация: 21.7.2009
Из: Самара
Пользователь №: 928

Спасибо сказали: 14 раз(а)




Репутация:   2  


Вот зугуглил:
Цитата
double myArray[3][4] = { { 1.234, 3.567, 8.90, 0.123 }, { ... }, { ... } };

double * ptrs[3] = { &myArray[0], &myArray[1], &myArray[2] };

double ** ptr2ptr = &ptrs[0];

// call function
func(ptr2ptr, 3, 4); // void func(double**, int, int);

Note, I passed the 3, 4, as additional arguments cause the calling function has *no* way to find the dimensions for the sample.


An easier way to define and pass the original array is like that

void func(double arr[][4], int outersize);

which can be called

func(myArray, 3);

Here the called function *knows* the dimension of the inner arrays (rows) but not the dimension of the outer array.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.3.2024, 23:58