Hi, ich komme hier nicht weiter ich muss eine in der main() deklarierte struktur an eine funktion weitergeben als call by reference. Hier habe ich ein Array zu übergeben aber denke es dürfte keinen unterschied machen.
Funktionsbeschreibung:
Es sollen eingegebene Namen in 3 Listen eingeteilt werden 0.Liste alle Namen 1. und 2. Liste sollen ausgewählt werden. Anschließend soll die Liste1 ausgegeben werden.
Hier der Code. Was ist da falsch?
Der Compiler bringt keine Fehlermeldungen.
Sollen das mit Pfeiloperator machen.
Funktionsbeschreibung:
Es sollen eingegebene Namen in 3 Listen eingeteilt werden 0.Liste alle Namen 1. und 2. Liste sollen ausgewählt werden. Anschließend soll die Liste1 ausgegeben werden.
Hier der Code. Was ist da falsch?
Der Compiler bringt keine Fehlermeldungen.
Sollen das mit Pfeiloperator machen.
Code:
#include <stdio.h>
#include <string.h>
#define MAX 20
struct listen {
char name[MAX];
};
void einles(int *namezaehl,struct listen *liste[3][100])
{
int auswahl,zaehl1=0,zaehl2=0;
while(1)
{
printf("Name:");
gets(liste[0][*namezaehl]->name);
if(strlen(liste[0][*namezaehl]->name)==0)
break;
printf("Welche Liste (1 oder 2) :");
scanf("%i",&auswahl);
if(auswahl==1)
{
strcpy(liste[1][zaehl1]->name,liste[0][*namezaehl]->name);
zaehl1++;
}
else
{
if(auswahl==2)
strcpy(liste[2][zaehl2]->name,liste[0][*namezaehl]->name);
zaehl2++;
}
getchar(); /*dummy getchar*/
(*namezaehl)++;
}
}
void ausgabeliste_1(int namezaehl,struct listen *liste[3][100])
{
int i;
printf("....1. Liste......\n");
for(i=0;i<namezaehl;i++)
{
printf("%s\n",liste[1][i]->name);
}
printf(".....Listenende.....");
}
int main(void)
{
int namezaehl=0;
struct listen liste[3][100]={0,0};
einles(&namezaehl,&liste[3][100]);
ausgabeliste_1(namezaehl,&liste[3][100]);
return 0;
}