私は事前に十分なスペースを確保しなければなりません。私は、より大きなタイプの4kのために十分なスペースを割り当てて、それを実際にどのような種類のデータで埋めるかを決定すると思いました。私はコンパイラが私にエラー(etoa:1554):不正なタイプ(ptr-to-void '+' int)と言う問題にぶつかっています。Cでグローバルストレージエリアタイプを独立に保つ方法は?
ser_dat_ch = calloc(LABEL_T_CNT,
(sizeof(mpls_vpws_t) > sizeof(mpls_vpls_t)
? sizeof(mpls_vpws_t)
: sizeof(mpls_vpls_t)));
ser_dat_ch
がそうのようなファイルスコープで宣言されています:私のinit関数で
static void *ser_dat_ch = NULL;
私は構造にデータをロード
、Irv = switch_mpls_vpws_data_get(lab, (mpls_vpws_t*)&ser_dat_ch[lab]);
のようにしたかったのですが、これがcompi私を吠えている。どうしたの?
「動的割り当ては許可されていません」と「calloc()」はどのようにメッシュされますか? – EOF
私は 'call()'を非常に最初の部分(私の 'init()'関数内)で使用します - これは許可されています! – cerr
@cerrですが、 'calloc()'は動的割り当てを行います。そのため、「動的な割り当ては許可されていません」という意味は不明です。 –