Je suis assez novice en C, et j'ai beaucoup de mal avec cette seule fonction. J'ai une structure déclarée comme :
struct nivel {
size_t filas;
size_t columnas;
int **mapa;
};
C'est juste un tableau 2d, avec ses informations de taille. Maintenant, j'ai une fonction qui lit un fichier texte et fait un "nivel", il est défini comme :
void nuevo_nivel_desde_archivo(struct nivel * nuevo_nivel, char *nombre_archivo ){
nuevo_nivel->filas = 0;
nuevo_nivel->columnas = 0;
...
Je ne vais poster que cette partie, car c'est là que réside le problème. J'ai toujours pensé que je pourrais créer une fonction qui recevrait un pointeur vers la structure et la "remplirait", de sorte que j'ai un appel à la fonction comme ceci :
struct nivel *nuevo_nivel;
nuevo_nivel_desde_archivo(nuevo_nivel,nombre_archivo);
Nombre_archivo contient juste le nom du fichier texte. Lorsque j'essaie d'attribuer un zéro à l'un des champs de la structure, j'obtiens une erreur de segmentation. D'après ce que je sais des pointeurs, cela devrait fonctionner, mais j'ai peur de manquer quelque chose et de faire une énorme erreur. Toute aide serait appréciée.
EDIT : Merci à tous ! Comme vous l'avez tous dit, j'essayais d'accéder à une mémoire qui n'était pas allouée, un pointeur nul. Maintenant j'ai un autre problème, mais ce sera un autre post. Merci !