Bonjour,
Tout est dans le titre, ou presque.
Je suis sous Windows 8.1, IDE Code::Blocks 13.12 et je m'initie doucement au C et à la bibliothèque SDL 2.0.
Je suis en train d'essayer de retranscrire un Labyrinthe, que j'avais fait et qui fonctionne sous wxLua.
Mais là n'est pas le problème.
Pour le moment, je souhaiterais pouvoir créer une table dynamique à 2 dimensions dans une structure.
Mon compilateur utilise le C99, qui si j'ai bien compris me permet de ne pas utiliser "malloc".
Si je déclare mon tableau dynamique 2 dimensions dans une fonction (pas dans la structure), ça fonctionne.
Si je déclare un tableau dynamique à 1 dimension dans la structure, ça fonctionne.
A deux dimensions, ça plante, pas à la compilation mais au lancement du programme.
Dans ma structure j'ai bien défini mon tableau avec 2 étoiles: **t_cases;
Je définis bien ma variable de structure, j'appelle sans problème les autres variables.
Je ne sais plus où chercher...
Un petit bout de code, peut-être?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 Dans main.h typedef struct s_labyrinthe s_labyrinthe; struct s_labyrinthe { ... ... ... Uint16 **t_cases; .... .... .... }; Dans le main int main(int argc, char *argv[]) { s_labyrinthe data; // définition de la variable de structure // définition des variables lignes colonnes. Uint16 xCases = data.Longueur - data.dx; Uint16 yCases = data.Largeur - data.dy; data.t_cases[xCases][yCases]; // dans cette exemple je ne vais pas plus loin, c'est la que ça plante... ... ... ... return 0; }
Merci pour toute l'aide que vous pourrez m'apporter et bonne journée à vous.
Claude.
Partager