Вам нужно сделать что-то вроде этого:
for(int i = 0; i < 100000000; i++){
int length = rand()%10000000+10000000;
char* tmp = test(length);
string str(tmp);
delete[length] tmp;
}
Это удаляет выделенный массив символов должным образом.
Кстати, вы всегда должны завершать строку нулем, если вы создаете ее таким образом (т.е. внутри функции test
), в противном случае некоторые функции могут легко запутаться и трактовать данные за вашей строкой как ее часть. , что в лучшем случае приводит к сбою в работе вашего приложения, а в худшем случае создает тихое переполнение буфера, приводящее к неопределенному поведению на более позднем этапе, что является окончательным кошмаром отладки ...;)