avro-cを使用して簡単な文字列セッターゲッタープログラムを実行しようとしています。avro文字列を取得する際にエラーが発生しました
avro_value_t frame_value;
avro_schema_t frame_schema = avro_schema_string();
avro_value_iface_t *frame_iface = avro_generic_class_from_schema(frame_schema);
avro_generic_value_new(frame_iface, &frame_value);
char *name;
int size;
avro_value_set_string(&frame_value,"hello");
avro_value_get_string(&frame_value,name,&size);
printf("\nname is %s",name);
printf("\nsize is %d",size);
が、サイズがヌル文字を含む6である正しいですが、それはnull文字列を出力します
私のコードです。私は間違って何をしていますか?
どの警告がコンパイラの印刷をしましたか?そして、あなたはそれらを沈黙させるために何をしたのですか? – Gerhardh
すべての警告の削除worked.sizeは、size_t型である必要があります。 intはsize_tにキャストできると思った。 –
'int'と' size_t'は異なるサイズを持つかもしれません。 'size_t'が存在する理由があるかもしれません。 ;)そして、あなたのコンパイラは、 'name'の間違った型についてひどく悲鳴を上げませんでしたか? AndreKamplingの答えに示されている他の欠陥の他に、それはうまくいかないものです。あなたのコンパイラがヒントを提供するならば、聞いてください! – Gerhardh