文字列配列の長さを求めるときに間違えたこと

文字列配列の長さを求めるときに間違いを犯したよ(>_<)

#include <stdio.h>

int main() {
  char *t[] = { "C", "C++", "Perl", "Python",
				"Ruby", "Java", "Javascript" };
  printf("size of array t = %d\n", sizeof(t));

  return 0;
}

これを実行すると

% a.out
size of array t = 28

ってなった


正しくはこうしなきゃいけない

#include <stdio.h>

int main() {
  char *t[] = { "C", "C++", "Perl", "Python",
				"Ruby", "Java", "Javascript" };
  printf("size of array t = %d\n", sizeof(t) / sizeof(t[0]));

  return 0;
}

これの結果は,

% a.out
size of array t = 7