11/11/08 23:09:44.76
俺>>120じゃないけど詳しい解説を追加
/* size_tは符号無しの整数型、Cなら元を辿るとただのunsigned intだけど
長ったらしいし符号無しの標準として使えるように定義されてる、
正の整数を使うのが分かってる場合はsize_tを使う場合が多い、
また、コードへの意味合いとしても役立つ、
個数という意味で名前に n を使ってるからintでいいじゃん、最大値超えるデータも扱わないし、
なんて声もたまにあるが、型に意味を持たせるのも非常に大事 */
int *oddalloc(size_t n)
{
int *p;
size_t i;
p = (int *) malloc(sizeof(int) * n);
if (p)
for (i = 0; i < n; i++)
p[i] = 2 * i + 1;
/* malloc()関数は成功すると確保した配列の先頭アドレスを返すが、失敗するとNULLを返す、
配列への代入は失敗時は通らないので問題ない、
またコードの美しさの点でも分岐が少ない方が良い事からこのような書き方になってる、と思う。 */
return p;
}