アレイがグローバル変数として定義されているとします。 グローバル配列内の要素の位置を指すグローバル変数(C言語)
int array[] = {16, 25, 36, 49, 64};
これは共有ライブラリとしてコンパイルされる場合、コンパイラは、シンボル「アレイ」は、アレイのメモリ内の位置を指すとバイナリを生成します。
アレイ内にあるメモリの場所を表すグローバル変数を追加することは可能ですか?
int elem;
elemが配列[2]と同じ場所をどのように表すことができますか? Cでも可能ですか?
EDIT:
は、それがポインタを介さずに行うことができますか?私はelem をにすることに興味があり、魔法使い配列[2]のメモリ内の場所が存在します。 int* elem = &array[2]
の場合、メモリはポインタ用に確保され、elemはそのポインタのシンボルになり、配列[2]のメモリアドレスがそこに格納されます。そのelemが配列[2]の位置のシンボルになりたいので、assert(elem == array[2])
はに常にを渡します。数学(≡)のアイデンティティのように。
誰でも知っているのは、私がプレーンCで、あるいはアセンブリでのみ可能なことです。
:D __それだけでも可能ですか?__ – paislee