Guten Morgen und Hallo, ich versuche eine unsigned long in ASCII zu wandeln. Mein Compiler CodeVision, stdl.h ist included, Die Declaration ist: void ltoa(long int n, char *ptr); ich habe initialisiert: 1. long int fx_result1; // Inhalt von ulong 2. char result_trans1[12]; // Array zur ablage der ASCII-zahl 3. char *ptor=&result_trans1; // Zeiger auf obiges Array der Funktionsaufruf ist: 4. ltoa( fx_result, *ptor) Die Fehlermeldungen des Compilers sind für Zeile 3: illegal address für Zeile 4: Functon parameter #2 incompatible with its declaration Irgendwas übersehe ich hier? Habi Ihr eine Tipp? Norbert L.
Statt char *ptor = &result_trans1; // Zeiger auf obiges Array solltest Du besser char *ptor = result_trans1; // Zeiger auf obiges Array schreiben. ltoa möchte einen Pointer vom Typ char* übergeben bekommen, nicht einen vom Typ char**.
char *ptor = result_trans1; // Zeiger auf obiges Array beliebter Fehler ! Entweder Leerzeichen lassen: char * ptor = result_trans1; oder Zuweisung separat machen: char *ptor; ptor = result_trans1; Und dann natürlich: ltoa( fx_result, ptor) Der * hat 2 verschiedene Bedeutungen !!! In der Deklaration: ein Pointer In der Zuweisung: der Inhalt Peter
@Rufus T. Firefly, @Peter Dannegger, jetzt funktioniert es, mit der Zeile von Rufus T. Firefly, ohne Leerzeichen, und dem zweitem Absatz von Peter Dannergger. Aber, warum ich das so machen muß ist mir noch nicht klar. Mein Lehrbuch 'C in 25 Tagen' habe ich wohl zu schnell gelesen. Besten Dank! Norbert L.
Vielleicht hast Du Lust, meine Routine aus der Codesammlung mit Deinem Compiler zu testen - Codegröße und Geschwindigkeit - und das Ergebnis mitzuteilen ? http://www.mikrocontroller.net/forum/read-4-126283.html
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.