я смотрел на образец GetAdaptersInfo() в MSDN:Malloc только один раз для ВСЕХ адаптеров при использовании GetAdaptersInfo()?
http://msdn.microsoft.com/en-us/library/aa365917%28VS.85%29.aspx
и заметил, что в то время как образец попытки перебора всех адаптеров, он выделяет память только для первого.
Это ошибка?
Если нет, то почему бы и нет? У всех адаптеров одинаковый размер информации?
Чтобы уточнить мой вопрос: я понял роль двойного вызова malloc в образце. Я не понимаю, почему это вне цикла. Если в системе есть только один адаптер, то, конечно, проблем нет. Но что происходит, когда есть несколько адаптеров? Это ошибка?
Спасибо.
Я не вижу никаких проблем. Цикл выполняется только по уже полученным адаптерам; он не пытается получить больше.Как правило, вы перебираете распределение по мере того, как содержимое может меняться во время работы, но маловероятно, что в систему будет добавлено больше адаптеров, в то время как вы перечисляете их, чтобы, вероятно, было безопасно только с двумя распределениями. – Luke