2007年12月19日 星期三

Array 與 sizeof operator

假設我們使用的平台 int 是 4 個 bytes,來看以下程式片段:

int a[5];
printf("sizeof(a) = %d", sizeof(a)); /* [1] */
printf("sizeof(a[0]) = %d", sizeof(a[0])); /* [2] */
printf("Num of elements = %d", sizeof(a)/sizeof(a[0])); /* [3] */
得到的結果為:
  1. 20 (array a 有 20 個 bytes)
  2. 4 (每個 element 為 4 bytes)
  3. 5 (共有 5 個 elements)
要把 array a 的內容清為 0 的話可以用:
#include <string.h>
memset((void *)a, 0, sizeof(a));

沒有留言: