アプリ版:「スタンプのみでお礼する」機能のリリースについて

いつもお世話になっております。

struct a_st{
.....
.....
....
} aa[100];

memset(aa,0,sizeof(aa));

というプログラムでのsizeof(aa) は、(a_st構造体のサイズ)×100ということでよいのでしょうか?

A 回答 (3件)

はい、合ってます。


もし、心配なら
printf("%d\n",sizeof(aa));
として、値を確認されてはいかがでしょうか。
    • good
    • 0
この回答へのお礼

ありがとうございます。

VisualC++が初めてで、標準入出力がどこになるのか、まだ探せていませんが
とりあえず安心しました。

お礼日時:2017/06/13 21:53

合っています。



特に構造体配列に定数を初期化して宣言するプログラミングでは、
追加開発で要素数が増えることを見越して、次のような方法で要素数を算出するというテクニックもあります。

struct a_st {
...
...
};

struct s_st aa[] = {
{..., ...},
{..., ...},
....
};

#define AA_SIZE (sizeof(aa) / sizeof(struct a_st))
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2017/06/23 14:32

配列のバイト数は常に「1要素のバイト数×要素数」で計算できます.



そして, #2 のようについ打ち間違えてしまう可能性があるので, X Toolkit では配列に対して要素数を求めるマクロを
#define XtNumber(array) (sizeof (array)/sizeof ((array)[0]))
のように定義しています.
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2017/06/23 14:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!