mikrocontroller.net

Forum: PC-Programmierung C - Fehler bei Parameterübergabe an Funktion - evtl. Speicherproblem??


Autor: max .. (vbc2011)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
HI,
ich möchte an eine Funktion (F1) verschiedene Parameter übergeben.
Dies funktioniert eig. auch ohne einen Fehler zu produzieren - jedoch 
kommt in der Funktion nicht mehr der Inhalt an - den ich hineingeben 
habe!

typedef XMLNODE  *XMLNODEPTR;

XMLNODEPTR    xmlrootmain = NULL;
char *XMLBuffer;
char XMLReadData[1024] = {"\0"};
XMLBuffer = &XMLReadData;

// Definition von F1:
// extern void XMLWriteToBuffer( XMLNODEPTR xmlroot, char *buffer, 
unsigned long bufSize, unsigned int *status )

//Nun der Aufruf
F1( &xmlrootmain, &XMLBuffer, 1024, &XMLStatus );

Ich schreibe in den &xmlrootmain den NodeTree von einer xml-file (also 
eig. nur "zeichen"). Vor der Übergabe in F1 ist das auch alles korrekt!
In der Funktion F1 selbst kommt jedoch nur ein Teil der "zeichen" an...

Ich denke dies könnte mit der Speicherverwaltung zutun haben??

Freue mich auf hilfreiche Tipps/Beispiele zum Verständnis!

Autor: Nico S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
xmlrootmain und XMLBuffer sind bereits ein Pointer, also so aufrufen:


F1( xmlrootmain, XMLBuffer, 1024, &XMLStatus );

Autor: Antwort (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
max .. schrieb:
> char *XMLBuffer;
> char XMLReadData[1024] = {"\0"};
> XMLBuffer = &XMLReadData;
Hier jhast du auch einen kleinen Fehler in der dritten zweile. Es müsste 
heßen
XMLBuffer = XMLReadData
Wenn du nur den Namen eines Arrays übergibst ist dies die Adresse des 
Arrays. Ein & musst du nur verwenden wenn dein Aufruf so aussehen würde
XMLBuffer = &XMLReadData[0]

Autor: max .. (vbc2011)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
haha - vielen Dank....
"oft liegt die lösung so klar vor einem":)

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.