當我嘗試在另一個結構指定字符string_buffer
它說在使用struct時使用未聲明的標識符?
錯誤使用未聲明的標識符的
我知道那意味着我需要聲明的字符串緩衝區當前struct
但有一個沒有這樣做的方式。
struct ABC{
char string_buffer[64];
};
struct ABC *DEF(char *name){
name = string_buffer;
};
當我嘗試在另一個結構指定字符string_buffer
它說在使用struct時使用未聲明的標識符?
錯誤使用未聲明的標識符的
我知道那意味着我需要聲明的字符串緩衝區當前struct
但有一個沒有這樣做的方式。
struct ABC{
char string_buffer[64];
};
struct ABC *DEF(char *name){
name = string_buffer;
};
string_buffer
不是一個正常的變量。它是struct ABC
類型變量的成員變量。你需要有struct ABC
類型的變量,然後,你需要訪問它USIG成員訪問運算符(.
或->
),像
struct ABC sample = {0};
.... sample.name //valid access
此外,FWIW,根據您的示例代碼,讓我告訴你,string_buffer
是一個數組。您不能以指定陣列的方式顯示在示例代碼片段中。如果您想複製內容,則需要使用strcpy()
。
它會嘗試將一個數組分配給......另一個數組也許! –
@iharob這就是爲什麼我沒有使用任務,我只是想顯示有效的訪問。 :) –
@iharob更新的答案澄清。 :) –
'string_buffer'是'struct'內的'char [64]'(一個由64個char組成的數組)。假設你有多於一個'struct',並且有一個名字的成員(這是允許的)。那麼,編譯器如何知道你的意思? – Olaf