Ik heb een programma, gecompileerd met Visual C++ 2008 Express.
Op sommige computers crashed dit, maar op de meeste niet. De crashende pc's bleken tot nu toe allemaal WinXP SP2 te zijn, maar veel pc's met hetzelfde OS crashen niet.
Ik heb dus eens wat MessageBox() calls in mijn code gezet om uit te vissen waar het precies fout ging.
Dat bleek tussen de volgende 2 regels te zijn:
(RSFLOAT is gewoon float op dit moment)
Erg vreemd dus dat de crash wel in de 2de maar niet in de eerste new gebeurde.
Het vervangen van new door malloc leverde niets op, maar vreemd genoeg lostte deze code de crash wel op:
Opnieuw erg vreemd dus, dat een mallov van 2x de grootte wel lukt.
Helaas lijkt dit het probleem alleen te verplaatsen, want nu komt de crash iets verder in mijn programma voor, bij deze code:
De crash ziet er zo uit:

Een tijdje geleden werkte het nog wel, maar niets aan de omliggende code is recent nog gewijzigd.
Heeft er dus iemand toevallig al eens hetzelfde voorgehad of enig idee wat ik nog kan proberen?
Op sommige computers crashed dit, maar op de meeste niet. De crashende pc's bleken tot nu toe allemaal WinXP SP2 te zijn, maar veel pc's met hetzelfde OS crashen niet.
Ik heb dus eens wat MessageBox() calls in mijn code gezet om uit te vissen waar het precies fout ging.
Dat bleek tussen de volgende 2 regels te zijn:
C++:
1
2
| Imp = new RSFLOAT[Nwing]; ImpD = new RSFLOAT[Nwing]; |
(RSFLOAT is gewoon float op dit moment)
Erg vreemd dus dat de crash wel in de 2de maar niet in de eerste new gebeurde.
Het vervangen van new door malloc leverde niets op, maar vreemd genoeg lostte deze code de crash wel op:
C++:
1
2
| Imp = (RSFLOAT *)malloc(sizeof(RSFLOAT) * Nwing * 2); ImpD = &Imp[Nwing]; |
Opnieuw erg vreemd dus, dat een mallov van 2x de grootte wel lukt.
Helaas lijkt dit het probleem alleen te verplaatsen, want nu komt de crash iets verder in mijn programma voor, bij deze code:
C++:
1
2
| std::ifstream mp3_file; mp3_file.open(filename.c_str(), std::ios::in|std::ios::binary|std::ios::ate); |
De crash ziet er zo uit:

Een tijdje geleden werkte het nog wel, maar niets aan de omliggende code is recent nog gewijzigd.
Heeft er dus iemand toevallig al eens hetzelfde voorgehad of enig idee wat ik nog kan proberen?