Здравствуйте, пишу курсач, но вот застрял на пустом месте и не могу двинуться дальше. У меня есть список который хранит указатели на строковые Констаны. Проблема заключается в том, что при выводе текста появляются каркозябры и именно при выводе 3 строки , что весьма странно.
Реализация списка:
#include "List.h"
List::~List()
{
ClearList();
}
void List::ClearList()
{
allNumber = 0;
while (head)
{
tail = head->next;
delete head;
head = tail;
}
}
int List::GetAllNumber()
{
return allNumber;
}
void List::Add( const char * pointer )
{
Node *temp = new Node;
temp->next = NULL;
temp->currentID = allNumber;
temp->str = pointer;
if (head != NULL)
{
temp->prev = tail;
tail->next = temp;
tail = temp;
allNumber++;
}
else
{
temp->prev = NULL;
head = tail = temp;
allNumber++;
}
}
const char * List::GetLineByID(int ID)
{
Node *temp = head;
while ( temp != NULL )
{
if( temp->currentID == ID )
return temp->str;
temp = temp->next;
}
return " ";
}
int List::allNumber = 0;
// Добавление данных в список
void CreateLines(string text)
{
listLine->ClearList();
int i = 0;
while(text.length() > 6)
{
listLine->Add(text.substr(0, 6).c_str());
text = text.substr(6, text.length());
}
listLine->Add(text.c_str());
}
Вот как собственно кракозябры отображаются.