Wypisanie zawartości tablicy mając wskaźnik

2015-01-14 17:37
0

Hejka mam napisac program ktory wypisze zawartosc dowolnej tablicy typu int majac tylko wskaznik.

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

void wypiszTablice(int *tab)
{
     while(tab++)
     {
         printf("%d ",tab);
     }
}

int main()
{
    int ta[3][2]={ {1,2}, {3,4}, {5,6} };

    wypiszTablice(*ta);

    system("PAUSE");
    return 0;
}

Wiem ze nazwa tablicy wskazuje na adres pierwszego elementu. Wydaje sie ze nalezy go inkrementowac.
dzieki za wskazowki

edytowany 1x, ostatnio: furious programming, 2015-01-14 17:42

Pozostało 580 znaków

2015-01-14 17:43
1

Mając tylko wskaźnik nie wiesz ile elementów ma ta tablica wskazywana przez ten wskaźnik, więc nijak się nie da.

Pozostało 580 znaków

2015-01-14 17:46
0

@twonek - skoro ze samego wskaźnika nie da się wyłuskać liczby elementów w macierzy, to można pobierać w parametrze ilość elementów do wypisania na ekranie.


Pozostało 580 znaków

2015-01-14 17:49
0

@furious programming no tak, drugi parametr z rozmiarem tablicy by się przydał. Ale z tego co zrozumiałem, to autor pyta o przypadek gdy mając tylko wskaźnik.

No to już dostał odpowiedź od Ciebie w pierwszym poście; - furious programming 2015-01-14 17:51

Pozostało 580 znaków

2015-01-14 18:20
0
#include <stdio.h>

void wypiszTablice(int *tab,size_t Y,size_t X)
{
     size_t y,x;
     for(y=0;y<Y;++y,printf("\n")) for(x=0;x<X;++x) printf("%4d ",*(tab++));
}

int main()
{
    int ta[][2]={ {1,2}, {3,4}, {5,6} };
    wypiszTablice(&ta[0][0],sizeof(ta)/sizeof(*ta),sizeof(*ta)/sizeof(**ta));
    return 0;
}

Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Pozostało 580 znaków

Liczba odpowiedzi na stronę

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