Witam pisze w Borlandzie c++ B.

Mam następujący problem , chciałbym w ponizszym kodzie przykładowym ,wyniki wrzucać np do memo i pojawia sie problem gdy to robie to wyżuca mi owiele wiecej danych niż bym chciał (przyklad napisany jest na okno wiersza polecen) .

ULONG nSize=400;

PMIB_IPNETTABLE pMib = (PMIB_IPNETTABLE)malloc(sizeof(
MIB_IPNETTABLE)+
sizeof(MIB_IPNETROW)*nSize);

DWORD dwRet = GetIpNetTable(pMib,&nSize,TRUE);

for (int i =0;i<nSize;i++)
{
char ipaddr[20], macaddr[20];

sprintf(ipaddr,"%d.%d.%d.%d",
( pMib->table[i].dwAddr&0x0000ff),
((pMib->table[i].dwAddr&0xff00)>>8),
((pMib->table[i].dwAddr&0xff0000)>>16),
(pMib->table[i].dwAddr>>24)
);

sprintf(macaddr, "%02x-%02x-%02x-%02x-%02x-%02x",
pMib->table[i].bPhysAddr[0],pMib->table[i].bPhysAddr[1],
pMib->table[i].bPhysAddr[2],pMib->table[i].bPhysAddr[3],
pMib->table[i].bPhysAddr[4],pMib->table[i].bPhysAddr[5]
);

printf("%-20s %-25s",ipaddr,macaddr);

if (pMib->table[i].dwType == 3) printf("Dynamic\n");
else if (pMib->table[i].dwType == 4) printf("Static\n");