У меня проблема с этим кодом. Я хочу закодировать программу, которая имеет различную личную информацию в массиве. И я хочу настроить 15 массивов в одном месте в памяти (malloc). Также программа должна выводить (printf) личную информацию одного человека по запросу (angestellter [0-14]).массив структур и malloc [C]
В Код ошибки I Recive являются следующие:
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'; вы не можете использовать подписи на нем. –
Похоже, вы выделяете память и присваиваете ее переменной db. Разве вы не должны использовать db вместо angestellter? – bruceg