gcc 4.4.4 c89allocation de mémoire pour une structure
Je ne cesse d'obtenir un "Impossible de déréférencer un type incomplet". Cependant, je suis sûr que mon type de structure est complet. Je renvoie l'instance Network_t qui est le pointeur vers la mémoire allouée. Je devrais être capable de déréférencer cette mémoire.
Un grand merci pour tous les conseils,
J'ai dans mon fichier d'en-tête: driver.h
typedef struct Network_t Network_t;
Network_t* create_network(int id);
fichier de mise en œuvre driver.c
#include "driver.h"
struct Network_t {
int id;
};
Network_t* create_network(int id)
{
Network_t *network = malloc(sizeof *network);
if(network) {
network->id = id;
}
return network;
}
Et dans ma principale .c
#include "driver.h"
Network_t *network = NULL;
network = create_network(1);
printf("Network ID: [ %d ]\n", network->id); /* Cannot dereference pointer to incomplete type */
S'il vous plaît assurez-vous de coller le code qui _exactement_ vous utilisez, pas un re-type. 'driver.c' ne peut pas compiler car il n'y a pas de'; 'après' network-> id = id'. Cela me fait douter du reste du code. J'assume que vous avez coupé les lignes '# include ', sinon vous auriez probablement des messages d'erreur différents. –
J'ai corrigé ces fichiers d'inclusion. Merci. – ant2009