Cześć mam taki dziwny problem, otóż do pewnej struktury zapasuje sobie ciąg znaków char * i w debuggerze ten ciąg znaków jest sensowny podczas wpisywania tej sekwencji, jednak przy wypisie wyskakują mi śmieciu, oto kod:
struct SField
{
unsigned short m_nTag;
const char * m_sValue;
void * m_pNext; //wskaźnik na następny
};
SField* createSField(unsigned short m_nTag, string m_sValue)
{
SField *sf = new SField;
sf->m_nTag = m_nTag;
sf->m_sValue = m_sValue.c_str();
cout << sf->m_sValue << " --------------------------" << endl;
sf->m_pNext = nullptr;
return sf;
}
void addSField(SField ** head, unsigned short m_nTag, string m_sValue)
{
if ((*head) == nullptr)
(*head) = createSField(m_nTag, m_sValue);
else
{
SField * helper = (*head);
while (helper->m_pNext != nullptr)
{
helper = (SField*) helper->m_pNext;
}
helper->m_pNext = createSField(m_nTag, m_sValue);
}
}
void writeSField(SField ** head)
{
SField * helper = *head;
while (helper != nullptr)
{
cout << helper->m_nTag << " " << (string)helper->m_sValue << endl;
helper = (SField*) helper->m_pNext;
}
}
Czy ktoś byłby w stanie pomóc?