ポインタ?

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
初心者

ポインタ?

#1

投稿記事 by 初心者 » 15年前

はじめまして。
ポインタを使用すれば何とかなりそうなのですが、散々悩みましたが分かりませんので質問いたします。

例えば、
unsigned long A;
unsigned short B[5];


A=0xF40000;
B[0]=1;
B[1]=2;
B[2]=3;
B[3]=4;
B[4]=5;

と仮定します。
その時、Aをアドレスとする番地にB[0]を、また、(A+1)のアドレスにB[1]を、・・・
という感じで、データを書き込みたいのですが、どのようにすれば巧くいきますでしょうか?

初期的な質問かもしれませんが、散々悩みに悩み、巧くいかず困っております。
申し訳ありませんが、よろしくお願いいたします。

初心者

Re:ポインタ?

#2

投稿記事 by 初心者 » 15年前

記載し忘れましたが、ICは「M32C/87」を使用し、コンパイラはHEWを使用しています。

softya

Re:ポインタ?

#3

投稿記事 by softya » 15年前

unsigned char *A;
unsigned char B[5];
int i;

A=0xF40000;
B[0]=1;
B[1]=2;
B[2]=3;
B[3]=4;
B[4]=5;
for( i=0 ; i<5 ; i++ ) {
a = b;
}
ってことかな?
ちなみにバイト単位の書き込みなので、変数のサイズもunsigned charにしてあります。

初心者

Re:ポインタ?

#4

投稿記事 by 初心者 » 15年前

softyaさん

ご回答有難うございます。

私も初めはそれでよいかと思って試したのですが、どうしても、

A=0xF40000;
の箇所で

invalid '=' operand
というエラーが出てしまうので、困っております。

softya

Re:ポインタ?

#5

投稿記事 by softya » 15年前

A=(unsigned char*)0xF40000;
とキャストしてもだめですか?

toyo

Re:ポインタ?

#6

投稿記事 by toyo » 15年前

unsigned char *A = (unsigned char *)0xF40000;
でもだめでしょうか

初心者

Re:ポインタ?

#7

投稿記事 by 初心者 » 15年前

softyaさん、toyoさん

有難うございました。
お二人のいうやり方で、どちらでも通りました。
大変助かりました。

有難うございました。

閉鎖

“C言語何でも質問掲示板” へ戻る