Ich habe ein Problem mit diesem Code. Ich möchte ein Programm programmieren, das verschiedene persönliche Informationen in einem Array enthält. Und ich möchte, dass 15 Arrays an einem Ort im Speicher eingerichtet werden (malloc). Auch das Programm sollte die persönlichen Daten einer Person auf Anfrage ausgeben (printf) (angestellter [0 - 14]).Array von Strukturen und malloc [C]
Die Codefehler I recive sind die folgenden:
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";
Dies ist mein Code:
#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);
}
'angestellteller' ist eine einzelne Variable vom Typ' struct ansteller'; Sie können keine Subskriptionen verwenden. –
Offenbar weisen Sie Speicher zu und weisen ihn einer Variablen namens db zu. Solltest du db statt angestellter nicht verwenden? – bruceg