【发布时间】:2022-01-01 05:26:23
【问题描述】:
我的代码没有运行,我该如何解决它 我想我不明白我错在哪里 使用指针,动态分配,结构时出错
#include"stdio.h"
#include"stdlib.h"
#include"string.h"
struct nhanVien{
int code;
char name[50];
char sex[50];
int numb;
int wage;
};
void input(nhanVien *worker,int n){
for(int i=0;i<n;i++){
printf("Nhap ma nhanVien : ");
scanf("%d",(worker->code+i));
}
}
int main(){
nhanVien *worker;
int n;
printf("Nhap so luong nhan vien : ");
scanf("%d",&n);
worker = (nhanVien*)malloc(n*sizeof(nhanVien));
input(worker,n);
for(int i=0;i<n;i++){
printf("Nhap ma nhanVien : %d \n",*(worker->code+i));
}
free(worker);
}
一元'*'的无效类型参数(有'int')C中的错误 这是图片enter image description here
【问题讨论】:
-
scanf("%d",(worker->code+i));- 这行应该做什么?worker->code+i是一个整数,而scanf需要一个指针。 -
看起来
worker->code+i应该是worker[i].code。 -
@mch
&worker[i].code -
@EugeneSh。对于
scanf,但不是printf
标签: c struct declaration member-access