使用struct时使用未声明的标识符?

时间:2016-02-04 20:44:16

标签: c struct

当我尝试在另一个结构中分配char string_buffer时,它会显示

  

错误使用未声明的标识符

我知道这意味着我需要在当前struct中声明字符串缓冲区,但是没有这样做。

struct ABC{
char string_buffer[64];
};


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

1 个答案:

答案 0 :(得分:4)

string_buffer不是正常变量。它是struct ABC类型变量的成员变量。你需要有struct ABC类型的变量然后,你需要使用成员访问操作符(.->)来访问它,比如

struct ABC sample = {0};

.... sample.name   //valid access

另外,FWIW,根据您的示例代码,让我告诉您,string_buffer是一个数组。您不能按照示例代码段中显示的方式分配数组。如果您要复制内容,则需要使用strcpy()