Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

[ C ] Dynamiczna tablica dwuwymiarowa.

Chmarusso 15 Apr 2010 16:35 6891 3
  • #1
    Chmarusso
    Level 9  
    Witam, chce stworzyć programik do mnożenia macierzy. Wersja ze sztywno podanymi tabelami dziala. Jednak postanowilem dodać bajer, który będzie tworzył macierze o określonym rozmiarze i wczytywał je do programu. W sieci znalazłem kilka tematów o dynamicznej alokacji pamięci dla tablicy dwuwymiarowej.

    Napisałem coś takiego:
    Code:

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

    int main (void) {
    int **alok;
    int k, w, i;                                               //k - kolumny, w - wiersze
    alok = (int**)malloc(k * sizeof(int*));
        puts("Liczba kolumn macierzy A: ");
        scanf("%d", &k);
       
        puts("\nLiczba wierzy macierzy B: ");
        scanf("%d", &w);
       
        printf("\n\tBedzie tworzona macierz A o rozmiarach %d x %d", k, w);




        for(i=0; i<k; i++){
            *(alok+i)=(int*)malloc(w*sizeof(int));
        }
       


    puts("\n\n");
    free(alok);
    system ("pause");
    return 0;
    }


    W kompilatorze nie wywala żadnych błędów (Dev C++ 4.9). Po uruchomieniu programu i wczytaniu rozmiarów z klawiatury wyskakuje raport o błędach.

    Proszę o pomoc
  • #2
    lukagrom
    Level 16  
    W kompilatorze gcc, kompiluje i uruchamia się bez zastrzeżeń.
    jedynie argument "pause" dla funkcji system - nieznany
  • #3
    Chmarusso
    Level 9  
    jeżeli chodzi o system pause to faktycznie gcc pod linuxem tego nie łapie. Co do tego, że program wystartował i działa to dobra wiadomość. Sprawdzę na ubuntu i dam znać czy działa. Jak nie to jeszcze pokombinujemy co i jak
  • #4
    szelus
    Level 34  
    Chyba pierwsza alokacja pamięci powinna być po wczytaniu k, nieprawdaż?