gcc 4.4.4 c89Распределение памяти для конструкции
Я продолжаю получать «Невозможно разыменовать неполный тип».
Однако, я уверен, что у меня есть полный тип структуры. Я возвращаю экземпляр Network_t, который является указателем на выделенную память. Я должен уметь разыгрывать эту память.
Большое спасибо за любые советы,
У меня есть это в моем файле заголовка: driver.h
typedef struct Network_t Network_t;
Network_t* create_network(int id);
файла Реализация 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;
}
И в моей основной .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 */
Пожалуйста, убедитесь, что вы вставляете _exactly_ код, который вы используете, а не повторный тип. 'driver.c' не может компилятор, так как нет'; 'после' network-> id = id'. Это заставляет меня сомневаться в остальной части кода. Я _assume_, что вы вырезали строки '# include', иначе у вас, вероятно, были бы разные сообщения об ошибках. –
Я исправил те включенные файлы. Благодарю. – ant2009