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

Strings by ref als Funktionsparameter Kategorie: Programmierung C (von Wolfgang - 4.02.2009 21:11)
Ich nutze:
C-Control Pro Mega128
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?



    Antwort schreiben


Antworten:

Re: Strings by ref als Funktionsparameter (von PeterS - 5.02.2009 8:39)
    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)