Postat: 30 november 2006, 00:12:47
Jag vet tyvärr inte, men det här funkar också
Vågar man dra slutsatsen att varde[j] är ekvivalent med (*varde+i*x)[j] som är ekvivalent med *(*varde + i*x + j) eftersom alla fungerar ?

Kod: Markera allt
#define x 3
#define y 2
char varden1[y][x];
char varden2[y][x];
char varden3[y][x];
char varden4[y][x];
char (*varde)[x];
//Spara lite data i varden1
varde = varden1;
for (int i=0; i<y; i++)
{
for (int j=0; j<x; j++)
(*varde)[j] = i*x + j;
varde++;
//Skriv ut värden1
varde = varden1;
printf("\n\nvarden1\n---------------\n");
for (int i=0; i<y; i++)
{
for (int j=0; j<x; j++)
printf(" %d ", (*varde)[j]);
printf("\n");
varde++;
}
Kod: Markera allt
#define x 3
#define y 2
char varden1[y][x];
char varden2[y][x];
char varden3[y][x];
char varden4[y][x];
char (*varde)[x];
//Spara lite data i varden2
varde = varden2;
for (int i=0; i<y; i++)
{
for (int j=0; j<x; j++)
(*varde + i*x)[j] = i*x + j;
}
//Skriv ut värden2
varde = varden2;
printf("\n\nvarden2\n---------------\n");
for (int i=0; i<y; i++)
{
for (int j=0; j<x; j++)
printf(" %d ", (*varde + i*x)[j]);
printf("\n");
}
Kod: Markera allt
#define x 3
#define y 2
char varden1[y][x];
char varden2[y][x];
char varden3[y][x];
char varden4[y][x];
char (*varde)[x];
//Spara lite data i varden3
varde = varden3;
for (int i=0; i<y; i++)
{
for (int j=0; j<x; j++)
*(*varde + i*x + j) = 100 + i*x + j;
}
//Skriv ut värden3
varde = varden3;
printf("\n\nvarden3\n---------------\n");
for (int i=0; i<y; i++)
{
for (int j=0; j<x; j++)
printf("%d ", *(*varde + i*x + j));
printf("\n");
}
Kod: Markera allt
#define x 3
#define y 2
char varden1[y][x];
char varden2[y][x];
char varden3[y][x];
char varden4[y][x];
char (*varde)[x];
//Spara lite data i varden4
varde = varden4;
for (int i=0; i<y; i++)
{
for (int j=0; j<x; j++)
varde[i][j] = 100 + i*x + j;
}
//Skriv ut värden4
varde = varden4;
printf("\n\nvarden4\n---------------\n");
for (int i=0; i<y; i++)
{
for (int j=0; j<x; j++)
printf("%d ", varde[i][j]);
printf("\n");
}