Я сделал подобное сообщение ранее сегодня, но я не думаю, что я достаточно ясно понял, чего мне нужно достичь. Я хочу создать функцию, которая принимает буфер в качестве параметра, который используется для хранения только части входящего сообщения с сервера, полученного с помощью функции Windows recv. Он отправляет запрос на некоторые случайные числа на сервер, ждет ответа, а затем помещает их в буфер. Проблема в том, что массив чисел во входящем пакете может быть любой длины в зависимости от того, сколько запрошенных вызывающих функций. Входящее сообщение структурировано так:
struct PacketIn
{
int var1,
int var2,
int* array;
}
и функция должна вызываться так:
int numbers[100];
func(numbers,100) //takes a buffer and an amount of numbers to request.
Функция НЕ ДОЛЖНА выполнять выделение массива, но, как вы можете видеть, она должна выполнять определенное распределение, поскольку входящий пакет состоит не только из случайных чисел, в которых есть данные, используемые для проверки сообщения.
Вызывающая функция не должна получать эти данные проверки в буфере, который она выделяет. Возможно ли это без выделения всего входящего пакета внутри функции? Я подозреваю, что это может быть невозможно.
Спасибо.