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!
xmlrootmain und XMLBuffer sind bereits ein Pointer, also so aufrufen: F1( xmlrootmain, XMLBuffer, 1024, &XMLStatus );
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] |
haha - vielen Dank.... "oft liegt die lösung so klar vor einem":)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.