mikrocontroller.net

Forum: Compiler & IDEs Compiler macht nur scheiße


Autor: Malte Struebert (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

also langsam wirds echt merkwürdig. Selbst so simple Befehle wie ein
strlen funktionieren nicht!

bei folgendem Code:

void reverse(char *Text)
{
  int b=0;
  int e;
  e = strlen(Text);
  itoa(e,Text,10);
}

steht in e nachweislich eine Zahl größer 5000 drin... obwohl der String
der als Text übergeben wurde nur 3 Zeigen + die abschließende 0 lang
sein kann! (Hard codiert mittels strcpy(s,"ABC");)

Gibts vieleicht irgendwelche Compilerschatler die man im makefile noch
tätigen sollte, ich poste das Makefile mal mit, vieleicht fällt einem
ja was auf!

Gruß
Malte.

Autor: BAB (Kai K.) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
dir ist hoffentlich klar, dass nach dem funktionsaufruf der
speicherplatz von e wieder freigegeben wird da diese var nicht global
deklariert wurde.

Autor: Malte Struebert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

das ist schon klar, nur sollte der umgewandelte Text ja in der Var.
Text gespeichert sein oder nicht?!
Ich hab die zum Text halt einfach nur überschrieben die Funktion gibt
natürlich so keinen sinn das ist mir auch klar aber daruf wollte ich ja
auch garnicht hinaus.

Gruß
Malte.

Autor: BAB (Kai K.) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
was ist "text" denn?? ein array?

Autor: Malte Struebert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

text ist ein Array, genau.
char Text[10];
und übergeben wird es mit Funktion(char *Text[])

Sollte aber doch eigentlich funktionierten oder?

Gruß
Malte.

Autor: Joerg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Funktioniert nicht.  Gehe zurück zu K&R, Kapitel 5 ``Pointers and
Arrays''.  (Meine Frau will mir auch immer nicht glauben, daß sie
das nochmal lesen sollte. ;-)

Entweder

Funktion(char *Text) { ... }

oder

Funktion(char Text[]) { ... }

Beide Formen sind äquivalent.

Hast Du denn keine Compilerwarnung bekommen?

Autor: Malte Struebert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

nein hab keine bekommen, bin mir aber jetzt wo dus scheribst auch net
wicher ob es nicht doch ein Char Text[] war also ohne das *

die klammern hatte ich auf jeden fall da bin ich sicher, muß daheim
nochmal nachsehen...

Gruß
Malte.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.