char return_string[250];
int num_hosts;
if ((num_hosts = hci_scan((char **) & return_string, 0x03)) > 0) {
//case where one or more devices are found...
} else {
//case where zero devices are found...
}
Хм, какая подпись у hci_scan ()? Я имею в виду, что это возвращает? Даже если у вас нет доступа к определению hci_scan (), у вас все равно будет подпись, при условии, что она является частью стороннего API.
Похоже, что hci_scan () ожидает указатель на указатель, чтобы он мог выделить свою собственную память и вернуть указатель обратно. Если это действительно так, вы можете сделать
char * return_string; /* No memory allocation for string */
int num_hosts;
if ((num_hosts = hci_scan(&return_string, 0x03)) > 0) { /* get back pointer to allocated memory */
//case where one or more devices are found...
} else {
//case where zero devices are found...
}
Но опять же, это зависит от того, что hci_scan пытается сделать.