gpt4 book ai didi

c - 将 typedef 结构作为参数传递给函数

转载 作者:太空宇宙 更新时间:2023-11-04 08:07:48 30 4
gpt4 key购买 nike

当我运行这段代码时,我得到了这个错误:[错误] 下标值既不是数组也不是指针也不是 vector

#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/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com