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
#2116725
xmlrootmain und XMLBuffer sind bereits ein Pointer, also so aufrufen: F1( xmlrootmain, XMLBuffer, 1024, &XMLStatus );
Gast
#2116730
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 | |
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 | |
haha - vielen Dank.... "oft liegt die lösung so klar vor einem":)
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.