суббота, 2 мая 2009 г.

G++ и указатель на массив в стеке...

Код на C++, компилится при помощи G++ 4.1.2

И так, есть структура pam_response.
В теле некоей функции объявляю статический массив таких структур.
pam_response resp[3];
функция pam'а, которую мне надо вызывать, требует указатель на массив. Параметр объявлен как pam_response **resp.
Если передать ей &resp, компилятор ругается при преобразовании 'pam_response (*)[3]' в 'pam_response **' O_o.
Если сделать
pam_response *reslink = resp;
, то компилятор прекрасно глотает передавание в функцию параметра &reslink.


Объясните, плз, в чем фишка с невозможностью преобразования? Наверное, я потому не вижу тут проблемы, что чего-то не понимаю в мировоззрении компилятора...


PS
А сделать &&(resp[0]) или &((pam_response*)resp), естественно, не получится :(
Так что,придется держать лишнюю переменную :]