Malloc sur structures

Résolu/Fermé
Lord Shoedsackovskaïa Messages postés 163 Date d'inscription mardi 3 novembre 2009 Statut Membre Dernière intervention 19 novembre 2013 - Modifié par Lord Shoedsackovskaïa le 19/11/2013 à 18:54
nar6du14 Messages postés 459 Date d'inscription dimanche 27 décembre 2009 Statut Membre Dernière intervention 7 décembre 2013 - 20 nov. 2013 à 19:50
Bonjour amis internautes !

J'ai le code suivant, mais je n'arrive pas à savoir pourquoi ça plante (la compilation se passe correctement mais le débugger dit qu'à l'exécution il y a une erreur sur free(t))...


#include <stdio.h>
#include <stdlib.h>

typedef struct {
int **test;
int w, h;
} S;

int main(void) {

S *t = malloc(sizeof(t));

int i;
t->test = malloc(8 * sizeof(int*));
for (i = 0; i < 8; i++)
t->test[i] = malloc(8 * sizeof(int));

t->h = 0;
t->w = 0;
t->test[t->h][t->w] = 1;

for (i = 0; i < 8; i++)
free(t->test[i]);
free(t->test);
free(t);
}

Quelques éclaircissements ne seraient pas de refus !

Merci d'avance

1 réponse

nar6du14 Messages postés 459 Date d'inscription dimanche 27 décembre 2009 Statut Membre Dernière intervention 7 décembre 2013 64
20 nov. 2013 à 19:50
ton premier sizeof: sozeof(t) faut le remplacer par sizeof(S)
0