たろすけです。 > long (*a)[100000]; > a = (long(*)[100000])0x200000; こう書くなら long *a = (long*)0x200000; です。また、Cではそもそも配列の添字がチェックされません。 > long a[100000]; これなら static long a[100000]; でしょう。ただし、Bセクションが外部RAMに設定されている必要があります。 さらに、初期値付き変数にするならRセクションからも同じ容量を消費します。 あるいは外部RAM用のセクションを作成してそれを指定するのもアリでしょう。 また、staticを付けないとスタックを消費します。 配置などを考えないでアクセスするだけが目的なら前者が一般的でしょう。