Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Re: Strings by ref als Funktionsparameter Kategorie: Programmierung C (von PeterS - 5.02.2009 8:39)
Als Antwort auf Strings by ref als Funktionsparameter von Wolfgang - 4.02.2009 21:11

> Hallo,
> ich möchte in einen bestehenden String den Wert eines Integers in HEX-Darstellung einfügen.
> Beispielsweise kann der String lauten "Messwert: $.... HEX" und die word Variable Messwert
> enthält den (dezimalen) Wert 3456. Dann will ich bekommen "Messwert: $0D80 HEX".
>
> Habe dazu ein Prozedur geschrieben, die das Einfügen der 4 Hex-Ziffern übernehmen soll:
>
> void IntToHex(word Wert, char Ziel[], word Offset)
> { int hilf;
>
>   hilf =   Wert &  0x000F;     Ziel[Offset+3] = (hilf<10)? '0' + hilf : 55 + hilf;  // 55 = 'A'-10
>   hilf = Wert>>4 & 0x000F;  Ziel[Offset+2] = (hilf<10)? '0' + hilf : 55 + hilf;
>   hilf = Wert>>8 & 0x000F;  Ziel[Offset+1] = (hilf<10)? '0' + hilf : 55 + hilf;
>   hilf = Wert>>12 & 0x000F;  Ziel[Offset]   = (hilf<10)? '0' + hilf : 55 + hilf;
> }
>
> und wollte die aus dem Hauptprogramm folgendermassen rufen:
>
> void main(void)
> {
>   word Messwert;
>   char Text[50];
>
>   Text = "Messwert: $.... HEX";
>   Messwert = 3456;
>   IntToHex(Messwert, Text, 11);
> }
>
> Das Programm lässt sich fehlerfrei kompilieren, aber der Probelauf bricht ab mit der Meldung
> "Array Index zu gross bei Adresse 25399 in Thread 0 "
>
> Was ist falsch?

Ist es möglich, das Du nicht die aktuelle Beta, sondern eine ältere Beta Version benutzt? In Version
1.99.2 ist der Bug eigentlich behoben.

Gruss Peter

>
>


    Antwort schreiben


Antworten:

Re: Strings by ref als Funktionsparameter (von Wolfgang - 5.02.2009 11:11)
    Re: Strings by ref als Funktionsparameter (von PeterS - 5.02.2009 16:57)
        Re: Strings by ref als Funktionsparameter (von Wolfgang - 7.02.2009 12:57)