G
ganymed
bluefish
ich hab einen ziemlich seltsamen fehler, den ich bei manchen programmdurchläufen erhalte. seltsam ist auch, dass ich sie manchmal bekommen und manchmal nicht, auch wenn ich sonst nix verändere.
der fehler kommt erst nachdem ich 2 eingaben im programm gamcht hab.
damit erstelle ich einen vector.
das soll die anzahl der elemente auf eine bestimmte zahl bringen (meistens so um die 10).
ich will hier nur jedem grad einen koeffizienten zurodnen und den im vector speichern. (es geht um ganzrationale gleichungen).
in diesem teil kommt es dann meiste nach der 2. eingabe zu folgender fehlermeldung:
beim kompilieren erhalte ich weder warnungen noch fehler.
der fehler kommt erst nachdem ich 2 eingaben im programm gamcht hab.
Code:
vector<float> kf;
Code:
kf.resize(grad);
Code:
while(akt_grad>0){
akt_grad=akt_grad-1;
cout<<"Koeffizient "<<akt_grad<<"? ";
cin>>kofix;
if(! cin.fail()){
kf[akt_grad]=kofix;//gib dem aktuellen grad seine koeffizienten
cout<<"Koeffizient des Grades"<<akt_grad<<" ist "<<kf[akt_grad]<<endl<<endl; //bestaetige mit ausgabe aus dem vector
}
else{
cout<<"Eingabe ungültig."<<endl;
return 1;
}
}//ende while akt_grad>0
in diesem teil kommt es dann meiste nach der 2. eingabe zu folgender fehlermeldung:
das kapier ich gar nicht mehr.*** glibc detected *** ./eunomia: malloc(): memory corruption (fast): 0x0804e2f8 ***
======= Backtrace: =========
/lib/libc.so.6[0xb7da0b00]
/lib/libc.so.6[0xb7da2dfd]
/lib/libc.so.6(malloc+0x85)[0xb7da45d5]
/usr/lib/libstdc++.so.6(_Znwj+0x29)[0xb7f476c9]
/usr/lib/libstdc++.so.6(_ZNSs4_Rep9_S_createEjjRKSaIcE+0x34)[0xb7f22e34]
/usr/lib/libstdc++.so.6(_ZNSs4_Rep8_M_cloneERKSaIcEj+0x3a)[0xb7f239ba]
/usr/lib/libstdc++.so.6(_ZNSs7reserveEj+0x49)[0xb7f24559]
/usr/lib/libstdc++.so.6(_ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd+0x34)[0xb7f0df24]
/usr/lib/libstdc++.so.6(_ZNSirsERd+0xd7)[0xb7ef74a7]
./eunomia(__gxx_personality_v0+0x339)[0x8048ce1]
/lib/libc.so.6(__libc_start_main+0xd[0xb7d527c8]
./eunomia(__gxx_personality_v0+0x69)[0x8048a11]
======= Memory map: ========
08048000-0804c000 r-xp 00000000 08:03 12746808 /home/konstantin/cpp/eunomia/eunomia
0804c000-0804d000 rw-p 00003000 08:03 12746808 /home/konstantin/cpp/eunomia/eunomia
0804d000-0806e000 rw-p 0804d000 00:00 0 [heap]
b7c00000-b7c21000 rw-p b7c00000 00:00 0
b7c21000-b7d00000 ---p b7c21000 00:00 0
b7d3b000-b7d3d000 rw-p b7d3b000 00:00 0
b7d3d000-b7e61000 r-xp 00000000 08:03 10534924 /lib/libc-2.5.so
b7e61000-b7e62000 r--p 00124000 08:03 10534924 /lib/libc-2.5.so
b7e62000-b7e64000 rw-p 00125000 08:03 10534924 /lib/libc-2.5.so
b7e64000-b7e67000 rw-p b7e64000 00:00 0
b7e67000-b7e71000 r-xp 00000000 08:03 14322463 /usr/lib/libgcc_s.so.1
b7e71000-b7e72000 rw-p 00009000 08:03 14322463 /usr/lib/libgcc_s.so.1
b7e72000-b7e95000 r-xp 00000000 08:03 10534934 /lib/libm-2.5.so
b7e95000-b7e97000 rw-p 00022000 08:03 10534934 /lib/libm-2.5.so
b7e97000-b7f71000 r-xp 00000000 08:03 14322466 /usr/lib/libstdc++.so.6.0.8
b7f71000-b7f74000 r--p 000d9000 08:03 14322466 /usr/lib/libstdc++.so.6.0.8
b7f74000-b7f76000 rw-p 000dc000 08:03 14322466 /usr/lib/libstdc++.so.6.0.8
b7f76000-b7f7c000 rw-p b7f76000 00:00 0
b7f94000-b7f97000 rw-p b7f94000 00:00 0
b7f97000-b7f98000 r-xp b7f97000 00:00 0 [vdso]
b7f98000-b7fb2000 r-xp 00000000 08:03 10534917 /lib/ld-2.5.so
b7fb2000-b7fb3000 r--p 00019000 08:03 10534917 /lib/ld-2.5.so
b7fb3000-b7fb4000 rw-p 0001a000 08:03 10534917 /lib/ld-2.5.so
bffbd000-bffd2000 rw-p bffbd000 00:00 0 [stack]
Abgebrochen
beim kompilieren erhalte ich weder warnungen noch fehler.