Wypisanie zawartości tablicy mając wskaźnik

Wypisanie zawartości tablicy mając wskaźnik
Craith
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 146
0

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

Kopiuj
#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

twonek
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2500
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.

flowCRANE
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Tuchów
  • Postów: 12317
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.

twonek
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2500
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.

_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
0
Kopiuj
#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;
}

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.