A little update,
Someone told me that it holds the address of the var..
So I changed my code up like so..I am not sure if this will help but this exists in the documentation at http://rapidxml.sourceforge.net/manu...inute_tutorial
One quirk is that nodes and attributes do not own the text of their names and values. This is because normally they only store pointers to the source text. So, when assigning a new name or value to the node, care must be taken to ensure proper lifetime of the string. The easiest way to achieve it is to allocate the string from the xml_document memory pool. In the above example this is not necessary, because we are only assigning character constants. But the code below uses memory_pool::allocate_string() function to allocate node name (which will have the same lifetime as the document), and assigns it to a new node:
I can see in your code that it appears that your char arrays x,y,z are created in scope of your loop and as such do not satisfy the requirements above
Code:struct charStruct { char X[10]; char Y[10]; char Z[10]; }; struct pathStruct { float X[1000]; float Y[1000]; float Z[1000]; charStruct X2[1000]; charStruct Y2[1000]; charStruct Z2[1000]; }Code:for(int i = 0;i<3;i++) { xml_node<> *Point = doc.allocate_node(node_element, "Point"); GrindPath->append_node(Point); FloatToCharA(toStore->X[i], toStore->X2[i].X); Point->append_attribute(doc.allocate_attribute("X", toStore->X2[i].X)); .... }
And that fixed everything![]()




Reply With Quote