Je me demande si la definition du tableau qui est soulignée réserve la memoire ou bien je dois faire un malloc ? parce que quand j'execute ca plante avec un probleme de memoire : The system DLL kernel32.dll was relocated in memory. The application will not run properly ...
Merci d'avance
A voir également:
Allocation memoire : malloc ou pas malloc dans ce cas ci ...
- Pq tu mets (char *)board et pas char * board ?
- Qd on a un tableau a 2 dimensions, il faut passer au moins une des dimensions a la fonction non ? void initboard(void initboard(char *bd[MaxBoardSize]) ou void initboard(char *bd, int height, int width) par exemple ? non ?
- bd += MaxBoardSize; qd tu fais ca, t'es sur que chaque ligne du tableau est contigue en memoire ?
Ben justement, ca marche dans cet exemple car ton allocation est contigue ( equivalent a char board[MaxBoardSize * MaxBoardSize];
- Pq tu mets (char *)board et pas char * board ?
(char *)board -> cast char** en char*
- Qd on a un tableau a 2 dimensions, il faut passer au moins une des
dimensions a la fonction non ? void initboard(void initboard(char
*bd[MaxBoardSize]) ou void initboard(char *bd, int height, int width)
par exemple ? non ?
Le problème n'est pas le nombre de dimension mais l'accès a tes données, si elles sont contigues, il suffit de connaitre l'adresse du premier element. Si pas contigu, tu ne peut pas faire
bd += MaxBoardSize; mais bd[i++] (en gros...)