C - Structs

  • Onderwerp starter Onderwerp starter NoiK
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

NoiK

Gebruiker
Lid geworden
13 apr 2007
Berichten
31
hey, ik ben weer is wezen kijken naar C structs

alleen zit ik nu ff vast op iets:
Code:
#include <gtk/gtk.h>

typedef struct
{
	gchar name;
	gchar tooltip;
	GtkAction action;	
}menu_thing;

menu_thing* get_parsed()
{
	struct menu_thing* test;
	test.name = "test";
	return test;	
}
Wanneer ik dit run, en ook de functie get_parsed() aanspreek krijg ik :
parsed.c:13: error: request for member 'name' in something not a structure or union

Waarom geeft hij dit aan?

Alvast Bedankt
 
okeej nou voorgaande issue was opgelost, zie ook onderstaande code, alleen nu wilde ik dingen toevoegen maar gaat het nu hier op fout. ik staar me nu al bijna dood op de code dus vooruitgang heb ik niet.

iemand een idee:
parsed.c:24: error: 'menu_thing' has no member named 'next_menu'
parsed.c:25: error: 'menu_thing' has no member named 'next'
Code:
typedef struct _menu_thing
{
	gchar* name;
	gchar* tooltip;
	GtkAction* action;	
	bool is_menu;
	menu_thing *next_menu;
	menu_thing *next;
}menu_thing;

menu_thing *blaat()
{
	//test = (menu_thing*)malloc( sizeof( menu_thing ) );
	first->name = "test";
	first->tooltip = "tooltip";
	first->action = NULL;
	first->is_menu = FALSE;
	first->next_menu = NULL;
	first->next = NULL;	
	return first;
}
 
In de code die je gepost hebt bestaat 'first' zelfs niet eens?

Is het mogelijk om je volledige code te posten?
 
sorry voor een late reactie, ik was onderhand toch verder gekomen.
het bleek dat ik toch dingen miste.

op dit moment zit ik weer met een andere struct probleem, het is allemaalzo lang geleden omdat ik meer met c++ bezig ben geweest.

op dit moment heb ik staan:
Code:
struct _menu_thing
{
	gchar* name;
	gchar* tooltip;
	GtkAction* action;	
	bool is_menu;
	menu_thing *next_menu;
	menu_thing *next;
};

menu_thing *init_menu()
{
	//menu_thing* test = {"test", "test", NULL, TRUE, NULL, NULL};	
	menu_thing* test;
	test->name = "test";
	test->tooltip = "tooltip";
	//test.name = "test";
	//test = {"test", "test", NULL, TRUE, NULL, NULL};
	g_message("test");
	return test;
}

ik heb ergens een typdef staan dus vandaar dat menu_ting zonder de _ werkt.

nouja nu roep ik dus :
Code:
menu_thing* test = init_menu();
		g_message(test->tooltip);
nu geeft de eerste regel hiervan alleen:
error: dereferencing pointer to incomplete type

Hier geraak ik ook niet meer uit
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan