zugriffs fehler
-
hallo ich habe ein problem bei dieser funktion
void IntFX2String(signed char *intFX01, char *target) { int i,fxl = getlengFX(intFX01)-1; target=&target[0]; for(i=0;i<=fxl;i++) { target[i]=intFX01[fxl-i]+48; //hier sagt der debuger: // First-chance exception in Crypt.exe: 0xC0000005: //Access Violation. } target[i]='\x00'; }
zu dem zeitpunkt:
i=0
fxl=0
target[i]=116't'
intFX01[fxl-i]=2also wenn der 2+48=50 in target[0] sreiben soll stürzt er ab..
wenn intFX01 auf mehr als eine variable zeigt stürzt hier nix ab und es kommt das raus was raus kommen soll..
einer ne idde??
-
Erstens: Die Anweisung
target=&target[0];
ist sinnlos.Zweitens: Was für Werte übergibst du der Funktion als 'intFX01' und 'target'?
Drittens: Kauf dir mal einen Duden
-
intFX01 ->|2|-1|128|128|128....
target ->|t|e|s|t|1|2|3|x00|wie gesagt zum zeitpunkt des absturzes ist intFX01[fxl-i]=2
da fxl und i = 0 sind; und da die schleife nur solange i<=0 ausgeführt wird
sollte die schleife auch nur einmal durchlaufen...die funktion getlengFX zhält einfach nur die stellen von intFX01 bis ein -1 kommt... also wird 1 zurück gegeben und da ich 1 abziehe kommt 0 raus...
-
Ist target ein Zeiger auf ein Stringliteral?