Ich habe das Problem das ich einen kleines Unterprogramm geschrieben habe und das auch beim erstenmal auch geht, aber wenn ich es nochmal aufrufe im Programm selber abstürzt.
Ich rufe es auf mit "sortName" auf...
<PRE>
switch(wahl)
{
case 'a': sortName(data,year);
break;
case 'b': sortGrundgehalt(data,year);
break;
default: printf("\nUnerlaubte Eingabe!!!\n");
}
</PRE>
und das Unterprogramm lautet...
<PRE>
void sortGrundgehalt(struct Satz sort[14],int year)
{
int i,j;
struct Satz *temp;
temp=(struct Satz *)malloc(sizeof(struct Satz*));
for(i=0;i<14;i++)
{
for(j=i+1;j<14;j++)
{
if((sort[i].Grundgehalt)>(sort[j].Grundgehalt))
{
*temp=sort[j];
sort[j]=sort[i];
sort[i]=*temp;
}
}
}
for(i=0;i<14;i++)
{
if((sort[i].Einstellungsdatum[2])==year)
printf("%s %s %f %f\n",sort[i].Name,sort[i].Vorname,sort[i].Arbeitszeit,sort[i].Grundgehalt);
}
}
</PRE>
das sortName führe ich im Programm selber eventuell öfters aus. Das 1. mal läuft es auch und beim 2.mal crasht es.
Wer kann mir helfen?
Ich rufe es auf mit "sortName" auf...
<PRE>
switch(wahl)
{
case 'a': sortName(data,year);
break;
case 'b': sortGrundgehalt(data,year);
break;
default: printf("\nUnerlaubte Eingabe!!!\n");
}
</PRE>
und das Unterprogramm lautet...
<PRE>
void sortGrundgehalt(struct Satz sort[14],int year)
{
int i,j;
struct Satz *temp;
temp=(struct Satz *)malloc(sizeof(struct Satz*));
for(i=0;i<14;i++)
{
for(j=i+1;j<14;j++)
{
if((sort[i].Grundgehalt)>(sort[j].Grundgehalt))
{
*temp=sort[j];
sort[j]=sort[i];
sort[i]=*temp;
}
}
}
for(i=0;i<14;i++)
{
if((sort[i].Einstellungsdatum[2])==year)
printf("%s %s %f %f\n",sort[i].Name,sort[i].Vorname,sort[i].Arbeitszeit,sort[i].Grundgehalt);
}
}
</PRE>
das sortName führe ich im Programm selber eventuell öfters aus. Das 1. mal läuft es auch und beim 2.mal crasht es.
Wer kann mir helfen?
Comment