运行此代码时,出现以下错误:
[错误]下标值既不是数组也不是指针也不是向量
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/*Defined a data type named User with typedef*/
typedef struct User{
char firstName[50];
char lastName[50];
int phonenumber;
}user;
int main(int argc, char *argv[]) {
user users[2];/*users defined "user" type*/
strcpy(users[0].firstName,"furkan");
strcpy(users[1].lastName,"xxxx");
users[0].phonenumber = 1;
users[1].phonenumber = 2 ;
print_users(users);
return 0;
}
/*Function for printing user type users values*/
void print_users(user usr)
{
int j=0;
for(j=0;j<10;j++)
{
printf("%-10s%-20s%7d\n",usr[j].firstName,usr[j].lastName,usr[j].phonenumber);
}
}
我可以在不使用typedef的情况下实现这个函数,但是我想知道是否有办法实现这个功能
最佳答案
void print_users(user *usr)
这应该是函数接收的参数,因为在函数内部,您正在访问usr[j],所以这意味着usr需要是指针,而不是结构本身。
啊,就是说,你的for从0到9(10个职位),你只分配了2个职位。
关于c - 将typedef结构作为参数传递给函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41511667/