как и у любого уважающего себя студента у меня есть вот это:
class MyString { char *ps; unsigned int L; unsigned int Tl; ..
и всё бы хорошо, но при перераспределении памяти у меня начинаются проблемы:
void MyString::MemReconf(unsigned int NewSize)
{
if(NewSize)
{ char newStrAlloc[NewSize];
if (NewSize<Tl) Tl=NewSize;
for (int i=0;i<=Tl;i++)newStrAlloc[i]=ps[i];
newStrAlloc[Tl]=0;
L=NewSize; delete[] ps;
ps=newStrAlloc; }
}
если delete [] убрать, то всё работает. чего не так? где-то у Страуструпа было написано, ЕМНИП, что delete[] работает только для NULL и массивов полученных new. так вот, так оно и есть. в конструкторе у меня new.
//за быдлокод бейте не сильно, и, желательно, конструктивно