Het is mij niet hellemaal duidelijk hoe ik het volgende in C kan bereiken:
Ik heb een een 2D array grid[15][15], deze wil ik initialiseren door alle waarden 0 te maken en dit wil ik met een functie doen.
Deze werkt alleen nog binnen de functie. Maar hoe ik dit met een 2D pointer zodat het ook buiten de functie veranderd? Iets van *(*grid+i) vernoemd ik maar hoe acces ik [x][y] met een pointer? Voor 1D is het gewoon *(x+i) maar hoe in 2d?
En is het verstandig deze pointers van te voren te allocaten met alloc? Of hoeft dat niet per se aangezien het dynamisch is?
Ik heb een een 2D array grid[15][15], deze wil ik initialiseren door alle waarden 0 te maken en dit wil ik met een functie doen.
C:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| void fill_array(int *grid[15][15]) { int x,y; for (y=1; y<=15; ++y) { for (x=1; x<=15; ++x) { grid[x][y]=0; printf(" in grid heeft %d %d de waarde %d\n", x,y, grid[x][y]); } } } |
Deze werkt alleen nog binnen de functie. Maar hoe ik dit met een 2D pointer zodat het ook buiten de functie veranderd? Iets van *(*grid+i) vernoemd ik maar hoe acces ik [x][y] met een pointer? Voor 1D is het gewoon *(x+i) maar hoe in 2d?
En is het verstandig deze pointers van te voren te allocaten met alloc? Of hoeft dat niet per se aangezien het dynamisch is?