当我编译该代码时,我得到“使用未声明的标识符‘数据’”。正如您所看到的,问题是 add_student 函数无法“查看”学生数组。
怎样做才能正常工作?
#include <stdio.h>
typedef struct {
char *name;
int age;
char *sex;
int class;
}student;
void add_student(int, char*, int, char*, int);
int main (int argc, const char * argv[])
{
student data[5];
add_student(5, "Mery", 3, "female", 8);
return 0;
}
void add_student(int sequence, char *name, int age, char *sex, int class) {
strcpy(data[sequence].name, name);
data[sequence].age[13];
strcpy(data[sequence].sex, sex);
data[sequence].class[2];
}
最佳答案
解决此问题的最简洁方法是将 data
作为附加参数传递给 add_student()
。
还有其他错误,例如
- 传递
5
作为sequence
的值,然后使用它索引到data
; - 使用
strcpy()
是不正确的,因为您没有为name
和sex
字段分配内存; - 表达式
data[sequence].age[13]
和data[sequence].class[2]
不是有效的 C。
关于c - 在函数中使用未声明的标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8747280/