ポインタと配列についてTweetC言語の入門書を読み始めたばかりの初心者である学生が、先生に質問をしているようです。どんな内容かちょっと聞いてみましょう。先生、ポインタの宣言ってこれで合っていますよね。5;のように使うとエラーが出るんです。メモリを確保しないと使えないぞ。a[10];のように宣言したら使えましたよ。ポインタって全然ダメですね。ポインタと配列はまったく違うものだから、どちらがダメでどちらが良いと云うことはないよ。配列はその場でメモリを確保して使えるが(上記の場合はintを10個分)、プログラム内で決め打ちした数値になってしまう。後から大きさの変更ができないんだ。ポインタは宣言しただけでは使えないが、後から自由にメモリを割り当ててその大きさを変えられるから、少ないメモリで済む場合は小さく、たくさんのメモリが必要な場合は大きくメモリを自由に確保することができる。それはこのようにすればいい。sizeof(int));これは、intのポインタにintの大きさで10個分のメモリを割り当てるという意味だ。確保したメモリが不要になったならfree(p);で開放する。この辺についてはその入門書にも載っているだろう。なんだか難しそうですね。慣れれば難しいことなどないよ。C言語ならmallocでメモリを割り当て、freeで開放と覚えていればいい。