Announcement

Collapse
No announcement yet.

Fehler in Code; bei Wiederholtem ausführen kommt eine Fehlermeldung

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Fehler in Code; bei Wiederholtem ausführen kommt eine Fehlermeldung

    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?

  • #2
    temp=(struct Satz *)malloc(sizeof(struct Satz*));

    Sollte man den Speicher nicht wieder freigeben?
    Christian

    Comment


    • #3
      ich habe das jetzt probiert und ein free(temp); eingefügt, aber auch das bringt nichts. Jedesmal kommt "Thread angehalten, Fehler:access violation at usw...
      woran kann es noch liegen

      Comment

      Working...
      X