2016-02-04 42 views
2

當我嘗試在另一個結構指定字符string_buffer它說在使用struct時使用未聲明的標識符?

錯誤使用未聲明的標識符的

我知道那意味着我需要聲明的字符串緩衝區當前struct但有一個沒有這樣做的方式。

struct ABC{ 
char string_buffer[64]; 
}; 


struct ABC *DEF(char *name){ 
name = string_buffer; 
}; 
+0

'string_buffer'是'struct'內的'char [64]'(一個由64個char組成的數組)。假設你有多於一個'struct',並且有一個名字的成員(這是允許的)。那麼,編譯器如何知道你的意思? – Olaf

回答

4

string_buffer不是一個正常的變量。它是struct ABC類型變量的成員變量。你需要有struct ABC類型的變量,然後,你需要訪問它USIG成員訪問運算符(.->),像

struct ABC sample = {0}; 

.... sample.name //valid access 

此外,FWIW,根據您的示例代碼,讓我告訴你,string_buffer是一個數組。您不能以指定陣列的方式顯示在示例代碼片段中。如果您想複製內容,則需要使用strcpy()

+0

它會嘗試將一個數組分配給......另一個數組也許! –

+0

@iharob這就是爲什麼我沒有使用任務,我只是想顯示有效的訪問。 :) –

+0

@iharob更新的答案澄清。 :) –