for(i=0; i < length; i++)
{
*temp = temp -> next;
}
Я думаю, здесь вы хотите увеличить temp
на length
элементов. Это достигается с
temp += length;
Нет доступных методов для char*
.
//Delete the null terminator after the hdr
delete *temp -> next;
Не могу позвонить delete
здесь. Вы звоните delete
только на том, что сделано с new
. Более того, вы не можете удалять символы из середины строки char*
C.
//Set what temp is pointing to (which should be the last letter of the
//header) to point to the msg.
*temp -> next = Message.msg;
Не совсем уверен, что вы пытаетесь сделать здесь. Там нет next
. Я думаю, что нам нужно знать больше о Message.msg
. На данный момент мы даже не знаем, какой это тип.
//Delete temp when you're done with it?
delete temp;
Вы не присвоили temp
с new
, поэтому вы не можете и не должны вызывать delete
для него.
return;
Нет необходимости делать это, функция void сделает это, когда достигнет конца.
В целом, я думаю, вам нужно вернуться к учебнику и освежить в деталях основы. Поскольку вы используете C ++, вы можете использовать конструкции более высокого уровня, такие как std::vector
и std::string
. Как только вы начнете использовать C ++, вам действительно следует вообще избегать char*
работы. Это грязно и трудно понять правильно. Собственные конструкции C ++ намного проще.
Я бы настоятельно рекомендовал вам просто выбросить весь этот код и попробовать создать версию на основе std::string
.