Wypisanie zawartości tablicy mając wskaźnik

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

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.

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.

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.

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;
}

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