C - Fehler bei Parameterübergabe an Funktion - evtl. Speicherproblem??

#2116712
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!
Gast #2116730
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
1
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
1
XMLBuffer = &XMLReadData[0]

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren