sizeof の注意点(文字列に使う場合)

char data[10];
len = sizeof(data);

の場合、lenは10だが、

char *data;
strcpy(data, "hoge");
len = sizeof(data);

の場合、lenはcharのポインタの大きさを返してしまう。
文字列のデータ長は、strlen を使う。

len = strlen(data);