2012-03-04 21 views
0

我似乎無法找出什麼我做錯了這裏
我的結構:麻煩分配一個const gchar *

struct listItem {const gchar *name,*val1,*val2,*val3;}; 

再後來我這樣做:

listItem *temp; 
const gchar *b1 = (const gchar *) (gtk_entry_buffer_get_text(GTK_ENTRY_BUFFER(obgect->b1))); 

這所有的工作正常,但我在這裏得到一個分割錯誤:

temp->name = b1; 

對不起,我太爛了

+1

你似乎在表明什麼都沒有做相互片斷。你向我們展示一行涉及'temp'的行,但下一行不涉及它。而「obgect」似乎是從哪裏來的。 'temp'在哪裏被初始化? – 2012-03-04 03:08:45

+0

是listItem * temp不是初始值設定項?之後我想過,我可以分配給它。 – MrDetail 2012-03-04 03:17:30

+0

是的,但你永遠不會分配給它。你在做任何任務之前先取消它。你需要'temp = '才能做'temp-> something'。您無法取消引用不指向任何位置的指針! – 2012-03-04 03:36:16

回答

1

您需要爲temp分配存儲空間,如:

listItem temp; 
temp.name = b1; 
+0

好吧,我看到了,我不能只是創建一個指針,並用 - >運算符分配是否正確? – MrDetail 2012-03-04 03:19:19

+0

'listItem * temp = new listItem'。這爲temp分配內存,然後你可以使用諸如'temp-> name'之類的東西。 – chris 2012-03-04 03:31:04