У меня были проблемы с recv()
, когда я всегда получал бы возврат -1, несмотря на наличие байтов для чтения. Моя проблема заключалась в том, что я называл это так:
ret = recvfrom(socket, &result, 10, 0, (struct sockaddr *)&addr, (socklen_t)(sizeof(addr)));
В то время как последний параметр был фактически требованием для адреса переменной, который имеет размер th ie как таковой. Правильный вызов был таким:
socklen_t recsize = sizeof(addr);
ret = recvfrom(socket, &result, 10, 0, (struct sockaddr *)&addr, &recsize);
Есть ли способ передать указатель на функцию, для которой требуется указатель в одной строке, без необходимости создания новой переменной и передачи адреса этой переменной?