>>967
>b[2]の内容をfunc内で参照したかったのです
その例では、値渡しも明快だと思う。
void func(struct a b) /* structは省略してよい。 */
{
}
std::vector<a> b(c);
func(b[2]);

>関数A内で関数Bを呼び出さない場合
>関数A内で宣言された変数を他の関数B内で参照するにはどうすればいいのでしょうか
自動変数(普通の関数内変数)はその関数の実行中しか存在しないから、
そういうことはできない。