我有一个函数的问题,它接收一个结构数组作为参数,当尝试使用运算符访问数组元素时出现问题 - >
#include <stdio.h>
typedef struct{
int order;
}record;
void entry(record*reg, size_t num_regs);
int main(void){
record reg[10];
entry(reg, sizeof reg / sizeof reg[0]);
return 0;
}
void entry(record*reg, size_t num_regs){
size_t i;
for (i = 0; i < num_regs; i++){
reg[i]->order = i;
printf("\n order = %d", reg[i]->order);
}
}
Run Code Online (Sandbox Code Playgroud)
如果您尝试编译,则抛出此错误
*error #2140: Type error in argument 1 to 'ingreso'; expected 'registro * *' but found 'registro *'.*
Run Code Online (Sandbox Code Playgroud)
因为它会引发此错误以及如何解决它?
当您使用[]作为指针时,您已经有了数据,所以请使用.而不是 - >
reg[i].order = i;
Run Code Online (Sandbox Code Playgroud)
和printf参数相同.