이 코드에 문제가 있습니다. 배열에 다양한 개인 정보가있는 프로그램을 코딩하고 싶습니다. 그리고 나는 15 개 배열을 메모리 (malloc)의 한 곳에서 설정하기를 원합니다. 또한 프로그램은 요청시 한 사람의 개인 정보 (angestellter [0 - 14])를 출력 (printf)해야합니다.구조체 배열과 malloc [C]
gcc ANGDB.c ANGDB.c: In function ‘print_angestellter’: ANGDB.c:14:18: error: subscripted value is neither array nor pointer nor vector nu = angestellter[x].nummer; ^ ANGDB.c:15:18: error: subscripted value is neither array nor pointer nor vector vn = angestellter[x].vorname; ^ ANGDB.c:16:18: error: subscripted value is neither array nor pointer nor vector nn = angestellter[x].nachname; ^ ANGDB.c: In function ‘main’: ANGDB.c:25:13: error: subscripted value is neither array nor pointer nor vector angestellter[0] -> nummer = 1; ^ ANGDB.c:26:13: error: subscripted value is neither array nor pointer nor vector angestellter[0] -> vorname = "George"; ^ ANGDB.c:27:13: error: subscripted value is neither array nor pointer nor vector angestellter[0] -> nachname = "Washington";
이 내 코드입니다 :
#include <stdio.h>
#include <stdlib.h>
struct angestellter{
int nummer;
char vorname[50];
char nachname[50];
}angestellter;
void print_angestellter(int x){
int nu;
char vn[50];
char nn[50];
nu = angestellter[x].nummer;
vn = angestellter[x].vorname;
nn = angestellter[x].nachname;
printf("%d, %s, %s\n", nu, vn, nn);
}
int main(){
struct angestellter **db = malloc(sizeof(angestellter)*15);
angestellter[0] -> nummer = 1;
angestellter[0] -> vorname = "George";
angestellter[0] -> nachname = "Washington";
print_angestellter(0);
}
'angestellter'는'struct angestellter' 유형의 단일 변수입니다. 당신은 그것에 subscripting을 사용할 수 없습니다. –
메모리를 할당하고 db라는 변수에 할당 한 것처럼 보입니다. angestellter 대신 db를 사용해야합니까? – bruceg