Debug Assertion Failed bei Funktion

aKom

Grünschnabel
Ich bin grade dabei eigene Funktionen zur Berechnung extrem großer Zahlen zu schreiben.
Die Funktion für die Addition zweier großer Zahlen funktioniert einwandfrei. Probleme habe ich allerdings bei der Multiplikation.

Hier erstmal der Code:

C++:
string multi(string value, string str) {
	int iwertv, iwerts;
	string wertv, werts, temp, temp2;
	int zaehler, max;
	int grvalue = value.size();		// value:	1. eingegebener wert
	int grstr = str.size();			// str:		2. eingegebener wert
	int over = 0;
		
	reverse(value.begin(), value.end());
	reverse(str.begin(), str.end());

	for(int i=0;i<grvalue;++i) {

		int j=0;

		wertv = value[i];
		werts = str[j];
		iwertv = string2integer(wertv);
		iwerts = string2integer(werts);

		iwertv *= iwerts;
		
		iwertv += over;
		over = 0;
		if(iwertv>9) {		
			over = iwertv / 10;
			iwertv %= 10;
		}
		temp += int2string(iwertv);
	}
	if(over != 0) temp += int2string(over);
	over = 0;
		
	reverse(temp.begin(), temp.end());
	return temp;
}

Wir als erster Wert eine ein- oder zweistellige Zahl angegeben, funktioniert das Ganze ohne Probleme. Wird jedoch eine dreistellige Zahl angegeben bekomme ich einen "Debug Assertion Failed" Fehler.
Scheinbar tritt das Problem nach dem zweiten Durchlauf der Schleife bei
C++:
if(over != 0) temp += int2string(over);
auf. Sicher bin ich allerdings nicht.

Hat jemand einen Tipp, wo das Problem liegen könnte?

Danke und Gruß,

Torsten
 
Hallo,

Bitte markiere das Problem in diesem Forum als erledigt (spezieller Button), da Du ja als neuesten Stand an anderer Stelle meldetest:

"Habe es mittlerweile anders gelöst, aber das Problem lag wohl an einem "überlaufenen" Vektor. "

Danke
 

Neue Beiträge

Zurück