我将一些数据放入数组并将其发送到接收器。问题是我将得到的数组大小不是预定义的。
出于临时目的,我声明int ar[10]
了它可以正常工作。但这不是我认为的正确方式。如何在这里动态分配它的大小?
在发送方:
for (std::map < int, std::vector < std::string > >::iterator hit = three_highest.begin(); hit != three_highest.end(); ++hit) {
for (std::vector < std::string >::iterator vit = (*hit).second.begin(); vit != (*hit).second.end(); vit++) {
ar[i]= hit-> first;
i++;
}
}
if ((bytecount = send(*csock, (char *)ar, i *sizeof(int), 0)) == -1) { // Here we cant send lenth-1. It consider exact
}
在记录结束时:
if((bytecount = recv(hsock, ar, sizeof(ar), 0))== -1){
fprintf(stderr, "Error receiving data %d\n", errno);
goto FINISH;
}
x= sizeof(ar)/sizeof(int);
printf("x is %d: \n ",x);
for(i=0; i < (sizeof(ar)/sizeof(*ar));i++)
{
std::cout << ar[i] << std::endl;
}
我怎么无法正确发送和接收。您的帮助将不胜感激!