ページ 11

ポインタで使用されない値

Posted: 2013年8月18日(日) 10:20
by weaseve
int *p[10]のような感じにして、それぞれに動的なメモリを何度も割り当てたり開放したりしたいのですが、自分の書いてるプログラミングの仕組み上0から開放したりされず途中のものが開放したりするのです。
そこで、もしポインタに使われない値を割り当てられていない時に代入しておけば
int i=0;
while(i<10){
if(p==TUKAWARENAI_ATAI){
//TUKAWARETEINAI
}
i++;
}
のような形にして使われていないかどうか判断できると思ったのです。
使われない値ってありますか?
あとこれよりいい方法ってありますか?

Re: ポインタで使用されない値

Posted: 2013年8月18日(日) 10:32
by へにっくす
weaseve さんが書きました:使われない値ってありますか?
ポインタとして使われない値が保証されているのがヌルポインタです。C言語ではNULLを使います。
サンプルコードでも、よくポインタがNULLかどうかで判定されていると思います。

コード:

if ( p==NULL ) {
    // エラー!ポインタが割り当てられていません。
}
ヌルポインタとは

Re: ポインタで使用されない値

Posted: 2013年8月18日(日) 16:19
by weaseve
ありがとうございました

Re: ポインタで使用されない値

Posted: 2013年8月18日(日) 16:22
by かずま
へにっくす さんが書きました: ヌルポインタとは
そこでは、「ヌルポインタは変数である」という間違った説明をしています。
Wikipedia にある「ヌルポインタとは、何のオブジェクトも指していないことを
表す特別なポインタである。」ぐらいが適切な表現だと思います。

Re: ポインタで使用されない値

Posted: 2013年8月18日(日) 20:16
by へにっくす
かずま さんが書きました:そこでは、「ヌルポインタは変数である」という間違った説明をしています。
あれまほんとだ
間違いの指摘ありがとうございます。