arrays - 在 C++ 中使用变量声明结构数组
问题描述
尝试通过键入请求的限制来更改结构数组的位置。当我尝试通过使数组声明成为变量来做到这一点时,它只是说“分段错误(核心转储)”我该如何解决这个问题并允许数组工作?这是我正在尝试制作的代码示例:
#include <stdio.h>
struct Employee {
char firstName[20];
char lastName[20];
unsigned int age;
char gender;
double hourlySalary;
};
int main(){
int limit;
printf("How much employees do you wish to input\n");
scanf("%d", &limit);
int number = limit;
struct Employee Employ[number];
for(unsigned int i = 0; i < limit; ++i){
("\n\t Enter employee first name\n");
scanf("%s", &Employ[i].firstName);
("\n\t Enter employee last name\n");
scanf("%s", &Employ[i].lastName);
("\n\t Enter employee age\n");
scanf("%d", &Employ[i].age);
("\n\t Enter employee hourly salary\n");
scanf("%lf", &Employ[i].hourlySalary);
}
for(unsigned int i = 0; i < limit; i++){
printf("\n\tfirstname\tlastname\tage\thourlysalary\n%s\t%s\t%d\t%lf",Employ[i].firstName,Employ[i].lastName,Employ[i].age,Employ[i].gender,Employ[i].hourlySalary);
}
}
预期结果和输入:
解决方案
您应该扫描一个没有 & 的字符数组,数组的名称已经是一个指针。
scanf("%s", Employ[i].firstName)
推荐阅读
- java - 在 JavaFX 中绘制 2 条平行线
- windows - 为什么Chrome安装不能触发Windows Defender等
- php - 查询 MySQL 和 FROM_UNIXTIME Epoch
- javascript - 使用闭包返回函数作为参数
- angular - 如何从角度向 Google Analytics 报告当前标题?
- hyperledger-fabric - MSP 错误:提供的身份无效:x509:证书由未知权威 Hyperledger Fabric 签名
- python - 更改表未添加列 (pymssql)
- javascript - 将数据从客户端javascript发送到节点js
- wordpress - 将短代码属性传递给 WordPress 远程发布 URL
- sql - 无法在派生表中绑定多个部件标识符