Mam taki kod:
// Program 4 (przekazywanie tablicy 3-wymiarowej do funkcji za pomocą wskaźnika do pierwszego elementu)
#include <stdio.h>
void wczytaj(int *, int ile);
void wypisz(int *, int ile);
int i, j, k;
int main()
{
int tab[2][2][2];
int *ptr = &tab[0][0][0];
wczytaj(ptr, 2);
printf("\n\n");
wypisz(ptr, 2);
getchar();
return 1;
}
void wczytaj(int *wsk, int ile)
{
for (i=0; i< ile; i++)
for (j=0; j< ile; j++)
for (k=0; k< ile; k++)
{
printf("tab[%d][%d][%d]=", i, j, k);
scanf("%d", wsk);
printf("tab[%d][%d][%d]=", i, j, k);
printf("%d\n", *wsk++);
}
}
void wypisz(int *wsk, int ile)
{
for (i=0; i< ile; i++)
for (j=0; j< ile; j++)
for (k=0; k< ile; k++)
{
printf("tab[%d][%d][%d]=", i, j, k);
printf("%d\n", *wsk++);
}
}
Chciałem się zapytać czemu zwiększana jest wartość tego wyrażenia w tym wypisywaniu: "printf("%d\n", *wsk++);" Gdy usunę inkrementację i zostawię samo *wsk to wyskakują mi dziwne wartości. Nie mogę dojść do tego jaki to ma wpływ na program? Skoro to tylko wypisuje wartości, to nie powinno nic psuć.