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]=2

    also 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?


Log in to reply