Я пытаюсь определить функцию, которая вернет указатель на структуру. Я думаю, что я правильно это сделал (Returning a struct pointer), но мой код продолжает жаловаться на это сообщение об ошибке, когда я пытаюсь получить доступ к элементам указателя, «ошибка: разыменовать указатель на неполные типы».Возвращение указателя на структуру
Вот мой код
#include <stdio.h>
#include <string.h>
#include <assert.h>
struct lnode
{
char* word;
int line;
int count;
struct lnode* nn; /* nn = next node */
};
struct lnode* newNode (char* word, int line)
{
struct lnode* newn = (struct lnode*) malloc(sizeof (struct lnode));
if (!newn)
return NULL;
strcpy (newn->word, word);
newn->line = line;
newn->count = 1;
newn->nn = NULL;
return newn;
}
int main()
{
char* p = "hello";
struct lnode* head = newNode (p, 5);
//the following lines are causing errors
assert (!strcmp (head->word, p));
assert (head->line == 5);
assert (head->count == 1);
assert (!head->nn);
return 0;
}
Спасибо за помощь!
У меня есть ощущение, что STH еще неправильно ... –
кода вы показываете не совсем как у вас есть код. Структура 'lnode', скорее всего, определена в некоторых других ТУ. –
Вы захотите выделить память для 'word'. Ваш 'strcpy' собирается бомбить, как только вы сможете запустить это. И да, пожалуйста, покажите реальный код. Этот код кажется поддельным. Всегда разочаровывает встреча с поддельным кодом. –