C言語関係掲示板

過去ログ

No.1255 配列への書き込みを禁止する方法

[戻る] [ホームページ]
No.2614

書き込みNG
投稿者---チェリーC(2004/09/02 11:07:04)


unsigned char rom[24];

のような配列への書き込みをNGにしたい場合
どんな方法があるでしょうか?



No.2615

Re:書き込みNG
投稿者---Ban(2004/09/02 11:10:26)


>unsigned char rom[24];
>
>のような配列への書き込みをNGにしたい場合
>どんな方法があるでしょうか?

const なポインタなり参照なりを用意して
そちらしか参照させない。




No.2616

Re:書き込みNG
投稿者---nop(2004/09/02 11:25:27)


>unsigned char rom[24];
>
>のような配列への書き込みをNGにしたい場合
>どんな方法があるでしょうか?


const unsigned char rom[24] = { /* 初期化子 */ };

但し、コンパイラに対する指定でしかない。
本当に書き換え不可な領域に置かれるかどうかは、
処理系や環境に依存する。



No.2617

Re:書き込みNG
投稿者---江戸門電鉄(2004/09/02 21:15:53)


>unsigned char rom[24];
>
>のような配列への書き込みをNGにしたい場合
>どんな方法があるでしょうか?
状況が良くわからない。拒否したいのは、誰が、いつ、どのように行う書き込みの事なのでしょうか。

それともconst unsigned char rom[24];で済む話?


No.2618

Re:書き込みNG
投稿者---Sciggepy(2004/09/02 22:32:24)


Windowsに限って言えば、VirtualAllocで割り当てたメモリをVirtualProtectで書き込み禁止にできます。

詳細