【掲示板ご利用上の注意】

 ※題名は具体的に!
 ※学校の課題の丸投げ禁止!
 ※ソースの添付は「HTML変換ツール」で字下げ!
 ※返信の引用は最小限に!
 ※環境(OSとコンパイラ)や症状は具体的に詳しく!
 ※マルチポスト(多重投稿)は謹んで!

 詳しくはこちら



 本当はこんなに大きく書きたくはないのですが、なかなか守っていただけなくて…。
 守ってくださいね。お願いします。(by管理人)

C言語ソース⇒HTML形式ツール   掲示板2こちら


管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧

No.18378

ポインタのサイズ(容量的な)
投稿者---nyo(2004/11/25 13:27:46)


void型の変数(いわゆるポインタ)ってどのくらいのサイズなんでしょうか?
int *a[99999];
int *b[99999];
   ・
   ・
のようにして、WinXP標準のタスクマネージャーで確認してみたのですが
サイズがほぼない感じがしました。

あらかじめポインタを(できる限り)大量に作っておかなければならないプログラムを作っているのですが、途中でこんな疑問が浮かんできました。

数の違いで動作に影響は出るのでしょうか?
初歩的でかつ、単純なことではありますが、
ご存知の方がおりましたらどうかご教授お願いします。


この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:ポインタのサイズ(容量的な) 18381 nop 2004/11/25 14:07:16
<子記事> Re:ポインタのサイズ(容量的な) 18383 επιστημη 2004/11/25 14:16:55
<子記事> Re:ポインタのサイズ(容量的な) 18384 Ban 2004/11/25 14:17:42
<子記事> Re:ポインタのサイズ(容量的な) 18453 nyo 2004/11/29 17:04:06


No.18381

Re:ポインタのサイズ(容量的な)
投稿者---nop(2004/11/25 14:07:16)


色々、勘違いしているようですね…。

>void型の変数(いわゆるポインタ)ってどのくらいのサイズなんでしょうか?

「void」型の変数はありません。
「void *」型であれば存在します。


>int *a[99999];
>int *b[99999];
>   ・
>   ・
>のようにして、WinXP標準のタスクマネージャーで確認してみたのですが
>サイズがほぼない感じがしました。

ポインタのサイズは環境依存ですが、
「サイズがない」と言う事はあり得ません。

sizeof(void *)、sizeof(int *)等で、各ポインタ型のサイズを得られます。

また、
>int *a[99999];
は、ポインタの配列で「a」のサイズは、
sizeof(a)で得られます。

> WinXP標準のタスクマネージャーで確認してみたのですが

タスクマネージャでは、ポインタのサイズは確認出来ません。

# どう確認したのでしょうか?


この投稿にコメントする

削除パスワード

No.18383

Re:ポインタのサイズ(容量的な)
投稿者---επιστημη(2004/11/25 14:16:55)


>void型の変数(いわゆるポインタ)ってどのくらいのサイズなんでしょうか?

sizeof(void*) の値をプリントしてごらんなさい。



この投稿にコメントする

削除パスワード

No.18384

Re:ポインタのサイズ(容量的な)
投稿者---Ban(2004/11/25 14:17:42)


> void型の変数(いわゆるポインタ)

void型の変数....は取れないと思いますけど。
また、ポインタとは明らかに違うものです。

> int *a[99999];

更に、void ではなく int になってます。


nyoさんが知りたいことが実際にどれをさしているのか不明ですが、
いずれにしても sizeof 演算子でポインタの型を指定すれば実際の
サイズが取れるはずです。
どの程度のサイズになるかはコンパイラなどによりますので、
ご自身の環境でご確認ください。

なお、C でも int* と void* が同じサイズである保証はなかった
と思いますので(C++ では保証されない)、void のポインタのサイズが
確認したいのであれば void のポインタを指定してください。

> 数の違いで動作に影響は出るのでしょうか?

配列で取得してるようですが、あまりに多いと実行時に
スタックオーバフローが発生すると思われます。
どの程度まで取れるかは、これもやはり環境依存です。
コンパイラのマニュアル等をご確認ください。

> WinXP標準のタスクマネージャーで確認してみたのですが

スタックメモリの使用量は、タスクマネージャには直接
反映されません。


この投稿にコメントする

削除パスワード

No.18453

Re:ポインタのサイズ(容量的な)
投稿者---nyo(2004/11/29 17:04:06)


どうも皆さんありがとうございます。
私の勘違いでよくわからない書き込みになってしまったようですね。
自分の未熟さが丸出しになってたみたいで・・・

では、早速やってみることにします。


この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧