c - 结构数组与结构指针之间的表达式相等

标签 c arrays pointers struct equality

给定以下结构,我想知道带有我写的指针的相等表达式是否正确

struct data{
char fname[30];
char lname[30];
float grade;
int trials;
int year;
};

struct data base[N];
fgets(base[i].lname,30,stdin)
base[i].fname[length-1] == '\n'
scanf(" %f",&(base[i].grade));
if(base[i].grade<0 || base[i].grade>10)


带指针的相等表达式

struct data{
char *fname;
char *lname;
float grade;
int trials;
int year;
};
struct data *base=malloc(N*sizeof(struct data));
for(i=0;i<N;i++){
        (base+i)->fname = malloc(30*sizeof(char));
        (base+i)->lname = malloc(30*sizeof(char));
    }
fgets((base+i)->lname,30,stdin)
(base+i)->(fname+length-1) == '\n'
scanf(" %f",&(base+i)->grade));
if((base+i)->grade<0 || (base+i)->grade>10)

最佳答案

base[i].fname[length-1]等效于*(((base+i)->fname)+length-1)

另外,正如编译器会告诉您的那样,您不能将malloc放在初始化程序中-初始化程序必须是编译时间常数。

关于c - 结构数组与结构指针之间的表达式相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21215817/

相关文章:

c - 使用套接字发送和接收文件

c - 优化嵌套 for 循环

c# - 从给定范围拆分数组

c++ - 如何解决 libmysqlclient_r.so 符号引用链接错误?

ruby-on-rails - 对这些类型的字符串进行排序的最佳方法是什么?

Java列表比较导致错误我无法确定

c - 将 int 指针设置为等于常规 int

使用 fork 创建子项并出现段错误(核心转储)

c - 从现有结构数组中查找并返回指向结构的指针

c - 如何将数据添加到txt文件的新行