Funkcja operująca na tablicy dwuwymiarowej w c

0

Mam do zaprogramowania program który wymnoży macierze.( język c ; dev cpp)
nie wiem czemu mój kod :


#include <stdio.h>
#include <stdlib.h>
#include <time.h> 
#include <math.h> 

void nadaj(int x,int y,double **tab)
{
	int i,j;
	
	for(i=0;i<x;i++)
		for(j=0;j<y;j++)
			tab[i][j]=rand()%20;
}
void wypisz(int x,int y,double **tab)
{
	int a,b;
	for(a=0;a<x;a++)
		for(b=0;b<y;b++){
		printf("%f  ",tab[a][b]);
	printf("\n");
                        }
                        printf("\n");
}

int main(void)
{
	int w1,k1;
	int w2,k2;
w1=3;k1=3;
w2=3;k2=3;
if(k1==w2)
{
double **a,**b;
double **c;
nadaj(w1,k1,a);
nadaj(w2,k2,b);
wypisz(w1,k1,a);
wypisz(w2,k2,b);
}
getchar();
  system("PAUSE");	
  return 0;
}

przechodzi przez kompilator a później powoduje wysypanie się programu.
debuger ostrzega mnie o segmentation fault
Jak poprawnie przypisywać wartości do komórek w tablicy dwuwymiarowej?

0

Na razie jestem w trakcie i powpisywałem wszystko na sztywno

#include <stdio.h>
#include <stdlib.h>
#include <time.h> 
#include <math.h> 

void nadaj(int x,int y,double tab[3][3])
{
	int i,j;
	
	for(i=0;i<x;i++)
		for(j=0;j<y;j++)
			tab[i][j]=rand()%2;
}

void wypisz(int x,int y,double tab[3][3])
{
	int a,b;
	for(a=0;a<x;a++){
		for(b=0;b<y;b++)
		
		printf("%f  ",tab[a][b]);
		
         
        printf("\n");
        }
        printf("\n");
}

void mnoz(double a[3][3],int w1,int k1,double b[3][3],int w2,int k2,double c[3][3])
{
	int k,w,m,n;
	double kom;
	m=0;
	n=0;
	kom=0;
	for(n;n<w1;n++)//wybiera kolejne wiersz
	{
    m=0;
	for(m;m<k2;m++)//wybiera kolejne kolumny
	{
			{
				for(k=0;k<k1;k++)
					kom=a[n][k]*b[k][m]+kom;
			}
				c[n][m]=kom;
				kom=0;
	}
}
}


int main(void)
{
	int w1,k1;
	int w2,k2;
	w1=3;k1=3;
	w2=3;k2=3;

srand(time(NULL));
if(k1==w2)
{
double a[w1][k1],b[w2][k2];
double c[w1][k2];
nadaj(w1,k1,a);
nadaj(w2,k2,b);
wypisz(w1,k1,a);
wypisz(w2,k2,b);
mnoz(a,w1,k1,b,w2,k2,c);
wypisz(w1,k2,c);

}



  getchar();
  system("PAUSE");	
  return 0;
}

<\code>
działa, teraz pozostało dołączyć dynamiczną pamięć i zrobić żeby działało dla innych zmiennych;
dzięki za odpowiedź

1 użytkowników online, w tym zalogowanych: 0, gości: 1