int main()
{
int *tab[5];
int i=0;
for (;i<5; i++)
{
tab[i]=&tab[i];
}
return 0;
}
私は自分のアドレスをタブのすべての要素に割り当てたいと思っています。それはなぜ機能しないのですか?私はそれらの中にポインタのアドレスを書きたい
int main()
{
int *tab[5];
int i=0;
for (;i<5; i++)
{
tab[i]=&tab[i];
}
return 0;
}
私は自分のアドレスをタブのすべての要素に割り当てたいと思っています。それはなぜ機能しないのですか?私はそれらの中にポインタのアドレスを書きたい
int*
の配列では、これを行うことはできません。 &tab[i]
はint**
となるためです。これらのポインタ型は互換性がありません。
しかし、void*
ポインタは、任意他のオブジェクトポインタもvoid**
をのアドレスを保持することができます。したがって、この宣言は:
void* tab[5];
あなたのプログラムを整形式に変換します。
しかし、それでは、なぜあなたはそれをやりたいのですか? :D – Rakete1111
@ Rakete1111 - あ、それは言語弁護士ではなく、哲学者のための質問です:P – StoryTeller
'&tab [i]'にはどのような種類がありますか?ヒント: 'int *'ではありません。 – Rakete1111
あなたがしようとしているのは、タイプが無限に再帰的である必要があるため、実際には不可能です。 –
ああ、私はポインタの価値としてポインタのアドレスを書くことができないのですか? – icnm