gpt4 book ai didi

c - 将结构传递给函数

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

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define SIZE 100000

typedef struct {
int day;
int month;
int year;
} DATE;

typedef struct {
char name[100];
int age;
float hrlyWage;
float hrsWorked;
float regPay;
float otPay;
float totalPay;
DATE payDate;
} PAYRECORD;

int newRecord(struct PAYRECORD record[], int index){
//set name to \0 so it can work as string
record[index].name = {'\0'};
index++;
return index;
}

int main(){
char menuChoice = 'X';
struct PAYRECORD record[SIZE];
int index = 0;

while (menuChoice != 'Q'){
system("pause");
system("cls");
menuChoice = runMenu();
switch (menuChoice){
case 'A':
index = newRecord(record, index);
}
}
}

main 设置一个结构数组,然后传递给 newRecord,目的是让我可以在此处输入数据,然后返回新索引以跟踪我的结构数组。但是,我的程序似乎没有将 newRecord 识别为一个函数,但出现了问题,最终导致整个程序关闭。我发现 newRecord 中所有函数的语法错误,但我相信这是因为,正如我提到的,该程序似乎无法将 newRecord 识别为用户定义的函数。

最佳答案

struct PAYRECORD 的使用是错误的,因为没有这样的类型。您只有一个名为 PAYRECORDtypedef

如果您希望能够使用 struct PAYRECORD 以及仅使用 PAYRECORD,请将 struct 的定义更改为:

typedef struct PAYRECORD {
char name[100];
int age;
float hrlyWage;
float hrsWorked;
float regPay;
float otPay;
float totalPay;
DATE payDate;
} PAYRECORD;

如果这不是您的目标,请将 struct PAYRECORD 的使用更改为 PAYRECORD

此外,行:

record[index].name = {'\0'};

newRecord 中不正确。你不能分配给这样的数组。将其更改为:

record[index].name[0] = '\0';

关于c - 将结构传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48997348/

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