掲示板利用宣言

 次のフォームをすべてチェックしてからご利用ください。

 私は

 題名と投稿者名は具体的に書きます。
 課題の丸投げはしません。
 ソースの添付は「HTML変換ツール」で字下げします。
 返信の引用は最小限にします。
 環境(OSとコンパイラ)や症状は具体的に詳しく書きます。
 返信の付いた投稿は削除しません。
 マルチポスト(多重投稿)はしません。

掲示板2

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

No.26608

ポインタについて
投稿者---satou(2006/04/12 00:54:52)


<pre>#include&lt;stdio.h&gt;

int main()
{
  int i;
  static int *p;

  i = 1024;
  *p = i;
  printf(&quot;%d\n&quot;, *p);

  return 0;
}
</pre>


この場合おかしいのは
*p = i
なのはわかったんですが、どこがいけないんでしょう?(ただデバッグしただけ)

ポインタpはアドレスを指定されていないのに、
どうやって不明なアドレスの先に代入するつもり?っていうことですかね?


この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:ポインタについて 26609 あきき 2006/04/12 01:39:10
<子記事> Re:ポインタについて 26611 気分屋 2006/04/12 02:35:18
<子記事> Re:ポインタについて 26613 DD. 2006/04/12 09:12:03


No.26609

Re:ポインタについて
投稿者---あきき(2006/04/12 01:39:10)


とりあえず、清書しときます。

#include <stdio.h>

int main()
{
  int i;
  static int *p;

  i = 1024;
  *p = i;
  printf("%d\n", *p);

  return 0;
}




この投稿にコメントする

削除パスワード

No.26610

Re:ポインタについて
投稿者---あきき(2006/04/12 01:52:42)


ポインタにiのアドレスが設定されていないからです。
当サイトでご確認を。


この投稿にコメントする

削除パスワード

No.26611

Re:ポインタについて
投稿者---気分屋(2006/04/12 02:35:18)


pが示す領域が、操作を許可されていない領域だからです。

もし仮に、pの初期値が0x100だったとして
もし仮に

int array[100];

としたときのarrayのアドレスが0x100であるならば
あなたが提示した

*p = i;

は問題なく動きます。




この投稿にコメントする

削除パスワード

No.26612

Re:ポインタについて
投稿者---気分屋(2006/04/12 02:53:47)


あれ、深く読みすぎた?

p = &i;

ってやりたかっただけだったりする?



この投稿にコメントする

削除パスワード

No.26613

Re:ポインタについて
投稿者---DD.(2006/04/12 09:12:03)


>ポインタpはアドレスを指定されていないのに、
>どうやって不明なアドレスの先に代入するつもり?っていうことですかね?
そうです。

なので、先にポインタ p に対して正当なアドレスを指すようにしてやるか、気分屋さんが示しているように

p = &i;

とするかになります。



この投稿にコメントする

削除パスワード

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