Если бы я использовал что-то подобное в C ++,
struct socket_t {
sockaddr_in address;
char buffer[2048];
int FD;
}
socket_t *clients[256];
memset(clients, 0, 256);
, а затем создавать в нем объекты,
socket_t **free = (socket_t**) memchr(clients, 0, 256);
*free = new socket_t;
, а затем используйте delete на некоторых элементах,
delete clients[index];
будут ли все члены благополучно освобождены (особенно буфер)?
Я не хочу тратить 2 КиБ на каждый предмет, который я создаю.
Я спрашиваю об этом, потому что заметил, что sizeof возвращает количество байтов, используемых при объявлении массива с type[2048]
, но размер указателя, если он объявлен с type*
.