problem mit einer Programmzeile
-
Hi Leute,
Ich brauche Hilfe,
Das ist Teil meiner Methode:
long range; freq->frequency =(int *)calloc(entries, sizeof(int)); freq->cum_frequency =(int *)calloc(entries, sizeof(int)); range = (long) (ace->high - ace->low ) + 1; (1)ace->low = ace->low + (range * freq->cum_frequency[symbol])/freq->cum_frequency[0]-1; (2)ace->high = ace->low + ( range * freq->cum_frequency[symbol])/freq->cum_frequency[0];
Bei komplieren geht alles OK, aber wenn Ich Debugger benutzte, kommt an der (1) und (2) Zeile folgende Meldung:
Unbehandelte Ausnahme bei 0x004122bd in AC.exe.
0xC0000094:Integer division bei zero.Ich teile aber nicht durch 0. Vieleich hängt es von Datentypen ab?
Bitte hilft mir!!!!!!
Viele Grüsse
Lena
-
Kein Wunder - dein Array freq->cum_frequency ist nach dem calloc()-Aufruf mit 0 initialisiert, d.h. du rechnest low+=(range*0)/0-1 und high+=(range*0)/0.
Eventuell solltest du zwischen den beiden calloc()-Aufrufen und Zeile (1) die arrays mit sinnvollen Werten füllen.
-
fanbjs schrieb:
Ich teile aber nicht durch 0.
-
Vielen Dankfür deinen Antwort.
Das hat mir sehr gehofen !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!