Problem z dynamiczna tablica wielowymiarowa

0
#include <stdio.h>
#include <stdlib.h> //malloc
//#include "macierz.h"

struct macierz
{

    int liczbawierszy;
    int liczbakolumn;
    int *adr_tablicy;

};


// dlaczego ampersant nie dzia³a
void parametrymacierzy(struct macierz *dane)
{
static int licznikmacierzy = 1;
int lwierszy;
int lkolumn;

    printf("podaj liczbe wierszy %i macierzy ", licznikmacierzy);
    scanf("%i", &lwierszy);
    printf("podaj liczbe kolumn %i macierzy ", licznikmacierzy);
    scanf("%i", &lkolumn);
    dane->liczbakolumn = lkolumn;
    dane->liczbawierszy = lwierszy;
    ++licznikmacierzy;

}


void uzupelnijmacierz(struct macierz *dane)
{
static int liczikmacierzuzupelnianej = 1;
int x, y;
int wczytajdomacierzy;
int **tablica;
tablica = (int**)malloc(dane->liczbakolumn * sizeof(int*));

for(x = 0; x < dane->liczbakolumn; x++)
                tablica[x] = (int*) (dane->liczbawierszy * sizeof(int));




    for(x = 0; x < dane->liczbakolumn; ++x)
    {

        for(y = 0; y < dane->liczbawierszy; ++y)
        {

            printf("podaj teraz wyraz macierzy tablica[%d][%d] : ", x, y);
            scanf("%d", wczytajdomacierzy);
            tablica[x][y] = wczytajdomacierzy;

        }

    }


    ++liczikmacierzuzupelnianej;
    //dane->adr_tablicy = tablica;
}



int main()
{

struct macierz *a1;
a1 = malloc(sizeof(struct macierz));
//struct macierz *a2;
//a2 = malloc(sizeof(struct macierz));

    parametrymacierzy(a1);
    uzupelnijmacierz(a1);
   // parametrymacierzy(a2);

    //a1.adr_tablicy[0][0] = 10;



return 0;
}

printf("podaj teraz wyraz macierzy tablica[%d][%d] : ", x, y);
program wczasie wpisania warosci do macierzy się wiesza.
Wie ktoś moze czemu??

Prosze o pomoc bo jutro musze go oddać

0
#include <stdio.h>
#include <stdlib.h> //malloc
//#include "macierz.h"

struct macierz
{

    int liczbawierszy;
    int liczbakolumn;
    int *adr_tablicy;

};


// dlaczego ampersant nie dzia³a
void parametrymacierzy(struct macierz *dane)
{
static int licznikmacierzy = 1;
int lwierszy;
int lkolumn;

    printf("podaj liczbe wierszy %i macierzy ", licznikmacierzy);
    scanf("%d", &lwierszy);
    printf("podaj liczbe kolumn %i macierzy ", licznikmacierzy);
    scanf("%d", &lkolumn);
    dane->liczbakolumn = lkolumn;
    dane->liczbawierszy = lwierszy;
    ++licznikmacierzy;

}


void uzupelnijmacierz(struct macierz *dane)
{
static int liczikmacierzuzupelnianej = 1;
int x, y;
int wczytajdomacierzy;
int **tablica;
tablica = (int**)malloc(dane->liczbakolumn * sizeof(int*));

for(x = 0; x < dane->liczbakolumn; x++)
                tablica[x] = (int*) malloc(sizeof((dane->liczbawierszy * sizeof(int))));




    for(x = 0; x < dane->liczbakolumn; ++x)
    {

        for(y = 0; y < dane->liczbawierszy; ++y)
        {

            printf("podaj teraz wyraz macierzy tablica[%d][%d] : ", x, y);
            scanf("%d", wczytajdomacierzy);
            tablica[x][y] = wczytajdomacierzy;

        }

    }


    ++liczikmacierzuzupelnianej;
    //dane->adr_tablicy = tablica;
}



int main()
{

struct macierz *a1;
a1 = malloc(sizeof(struct macierz));
//struct macierz *a2;
//a2 = malloc(sizeof(struct macierz));

    parametrymacierzy(a1);
    uzupelnijmacierz(a1);
   // parametrymacierzy(a2);

    //a1.adr_tablicy[0][0] = 10;



system("Pause");
return 0;
}

Poprawione, ale dalej ten sam błąd przy wpisaniu wartosci do macierzy

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