0
Да проверил, только написал сначала delete Buf; 

Так можно, но т. к. выделяется массив нужно писать

delete [] Buf;


тогда будет вызван деструктор для каждого элемента массива. Но в данном случае разницы не будет, т. к. вы выделяете массив из char, это простой встроенный тип, и у него нет деструктора.

Погонял данные что с это строкой что без нее ничего не меняется размер занимаемой памяти один и тот же.

Диспетчер — очень грубый инструмент. Плюс, ОС своеобразно оптимизирует работу с кучей. Потерю в несколько байт вы не заметите. Хотите удивить разницу — попробуйте выделять не несколько байт, а например, 10 МБ.

void __fastcall TForm1::NMUDP1DataReceived(TComponent *Sender,
int NumberBytes, AnsiString FromIP, int Port)
{//пришли данные по UDP отправим из в RS232 (433Mhz)
char* Buf=new char[10000000];
//Выставляем порт и IP куда надо слать
NMUDP1->RemoteHost=IP;
NMUDP1->RemotePort=PORT;
NMUDP1->ReadBuffer(Buf,NumberBytes,NumberBytes);
IP=FromIP;
PORT=Port;
ComPort1->Write(Buf,NumberBytes);
} 


тогда эффект должен быть наблюдаем и в диспетчере.
  • avatar
  • e_mc2
  • 06 октября 2014, 23:45