Hallo,
ich bekommen folgende Fehlermeldung in der nach beendigung meines Programmes:
"Run-Time Check Failure #2 - Stack around the variable 'user' was corrupted"
Ich glaube der Fehler liegt in der Funktion "berechne_beitrag_extremum. Hatte die Funktion vorher auch viel schöner geschrieben und habe sie aufgrund des Fehlers so geändert wie ihr sie jetzt seht aber der Fehler bleibt.
Wenn ihr den Code nicht durchgehen wollt gebt mir doch bitte einen Tipp was denn dieser Fehler genau bedeutet. Bin mir da nicht sicher aber könnte es ein Überlauf sein?
Danke im voraus!
Hier der Code:
ich bekommen folgende Fehlermeldung in der nach beendigung meines Programmes:
"Run-Time Check Failure #2 - Stack around the variable 'user' was corrupted"
Ich glaube der Fehler liegt in der Funktion "berechne_beitrag_extremum. Hatte die Funktion vorher auch viel schöner geschrieben und habe sie aufgrund des Fehlers so geändert wie ihr sie jetzt seht aber der Fehler bleibt.
Wenn ihr den Code nicht durchgehen wollt gebt mir doch bitte einen Tipp was denn dieser Fehler genau bedeutet. Bin mir da nicht sicher aber könnte es ein Überlauf sein?
Danke im voraus!
Hier der Code:
Code:
// datenbank.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung.
//
#include "stdafx.h"
#include "iostream"
#include "conio.h"
#include "process.h"
using namespace std;
struct member //datenstruktur der benutzer
{
char name[30];
char vorname[20];
char email[60];
char wohnort[20];
int beitraege;
char icq[10];
};
int berechne_beitrag_extremum(member user[],const sizeofusers,bool mode) //max/minimale beiträge berechnen
{ int i=0;
int temp=i+1;
int beitraege[2];
while(i<sizeofusers)
{
beitraege[i]=user[i].beitraege;
i++;
}
i=0;
while(i<sizeofusers && temp<sizeofusers)
{
if(mode)
{
if(beitraege[i]>beitraege[temp])
temp++;
else
{
i=temp;
temp++;
}
}
else
{
if(beitraege[i]<beitraege[temp])
temp++;
else
{
i=temp;
temp++;
}
}
}
return beitraege[i];
}
int berechne_durchschnitt(member user[],const sizeofusers)
{ int posts=0;
for(int i=0;i<sizeofusers;i++)
{
posts=posts+user[i].beitraege;
}
return posts/sizeofusers;
}
void eingabe(member user[],int sizeofusers)
{ system("cls");
for(int i=0;i<sizeofusers;i++)
{
cout<<"bitte geben sie ihren namen an: ";
cin>>user[i].name;
cout<<"bitte geben sie ihren vornamen an: ";
cin>>user[i].vorname;
cout<<"bitte geben sie ihre email an: ";
cin>>user[i].email;
cout<<"bitte geben sie ihren wohnort an: ";
cin>>user[i].wohnort;
cout<<"bitte geben sie ihre beitraege an: ";
cin>>user[i].beitraege;
cout<<"bitte geben sie ihre ICQ nummer an: ";
cin>>user[i].icq;
}
}
void berechnungen(int statistik[],member user[],const sizeofusers)
{
statistik[0]=berechne_durchschnitt(user,sizeofusers);
statistik[1]=berechne_beitrag_extremum(user,sizeofusers,0);
statistik[2]=berechne_beitrag_extremum(user,sizeofusers,1);
}
int _tmain(int argc, _TCHAR* argv[])
{
const sizeofusers=2;
member user[sizeofusers-1];
int statistik[3];
eingabe(user,sizeofusers);
berechnungen(statistik,user,sizeofusers);
cout<<"durchschnitt der beitraege: "<<statistik[0]<<endl;
cout<<"minimale beitraege: "<<statistik[1]<<endl;
cout<<"maximale beitraege: "<<statistik[2]<<endl;
system("pause");
return 0;
}