Zeichenkette an hauptprogramm

Gast #301803
Lesenswert?
• ▲
▼
Hallo Scheintod,
Danke erst mal für die Antwort.
So wie du das beschrieben hast funktioniert es jetzt auch. Habe ich
auch probiert.
Ich habe jetzt aber eine andere Anwendung. Da hab ich mich nicht
richtig ausgedrückt. Sorry, das is meine Schuld. Ich erkläre das mal
richtig.

Im Hauptprogramm habe ich eine Zeichenkette "temp". Die soll in eine
"include <temperatur.h> übergeben werden. Dann wird die Temperatur
dort in die Zeichenkette gechrieben und die geben ich dann wieder ans
Hauptprogramm zurück. In der "Main" wird die Temperatur dann auf dem
LCD ausgegeben. Ich probiere es schon die ganze Zeit, aber mehr wie ein
einzelnes ASCII-Zeichen bekomme ich nicht hin :(

Gruß Dennis
Persönliche Seite #301804
Lesenswert?
• ▲
▼
.

  "Ich erkläre das mal richtig."

gefolgt von

  Im Hauptprogramm habe ich eine Zeichenkette "temp".
  Die soll in eine "include <temperatur.h> übergeben
  werden.

ist ein schöner Wochenanfang. Ja, Lachen ist gesund.


Mal ernsthaft:

  #define TEXTLAENGE 20

  void hauptprogramm(void)
  {
    char temp[TEXTLAENGE];

    subProgramm(temp, TEXTLAENGE);
  }


  ...

  void subProgramm(char* p, int l)
  {
    if (!p)
      return;

    strncpy(p, "temperatur", l);
  }


Das entscheidende ist, daß der aufgerufenen Funktion ein Pointer auf
den String übergeben wird (das ist ja bei C-Arrays implizit so), und
sicherheitshalber sollte auch die Länge des Stringpuffers an die
aufgerufene Funktion übergeben werden, damit diese nicht falsche
Annahmen ob dessen Länge trifft und darauffolgende Speicherbereiche
überschreibt (der berühmte "buffer overrun").

Auch ist es sinnvoll, in Funktionen, denen Pointer auf was auch immer
übergeben werden, diese Pointer auf zumindest rudimentäre Gültigkeit zu
überprüfen (sie sollten nicht 0 sein).

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.