Привет всем!
Я получил следующую ошибку при попытке проверить код для игры Clever Frog:
ошибка: разыменование указателя на неполный тип
«Полный код» находится на pastebin.com - здесь (не истекает). Но я думаю, что с объяснением ниже, любой может понять. Примечание: я еще не реализовал функцию, которая будет стирать выделенную память и другие вещи.
У меня есть структура, определенная в файле 1.c:
#include "1.h"
...
struct test {
int a;
};
...
У меня есть 1.h, в котором используется typedef:
...
typedef struct test testT;
...
Тогда у меня есть функция, в которой есть параметр в зависимости от testT, который находится в 2.c:
...
void funcTest(testT **t, int *size, ..){
/* another function that creates mem.space/alocate memory based enter code here`on the need of size above */
createMem(t,*size); /* void createMem(testT **t, int size); */
t[0]->a = 0; /*ERROR HERE*/
/* ... more code ... */
}
...
Файл 2.h выглядит так:
...
void funcTest(testT **t, int *size, ..);
...
Я пройду testT * var , как указано ниже, в основной программе:
...
testT *varTest; int size;
funcTest(&varTest, &size);
...
Странно то, что код компилируется, когда я использую struct test в файле 1.h (удаление struct test из 1.c - что неправильно). Но при запуске скомпилированной программы именно там, где происходит ошибка, находится место t [0] -> a .
Я уже попробовал «все», но ничего не получалось :( Я верю, что это что-то очень глупое, поэтому, если кто-то что-то знает, пожалуйста, скажите мне: D
Спасибо!