• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Unix)

Unix系GNOME端末での12行目のエラーについての質問

このQ&Aのポイント
  • Unix系のGNOME端末でプログラムのコンパイル中に、12行目でエラーが発生しました。
  • エラーメッセージは「expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘OpenHashTableAlloc’」です。
  • このエラーの意味や解決策について教えていただけますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • FoolWord
  • ベストアンサー率73% (14/19)
回答No.3

>> OpenHashTable OpenHashTableAlloc(void) ←12行目 関数の中の戻りを見ると構造体OpenHashTableのポインターを返してるみたいですので、宣言部の返りをポインターに修正したらOKではないでしょうか? OpenHashTable* OpenHashTableAlloc(void) VC++6.0で確認した結果、OKでした。 [VC++確認ソース] struct OpenHashTable { int bucket_num; char *buckets; }; OpenHashTable* OpenHashTableAlloc(void) { OpenHashTable* table; table = (OpenHashTable*)malloc(sizeof(OpenHashTable)); if(table == NULL) { return (NULL); } else { table->bucket_num = 0; table->buckets = NULL; return (table); } } int main(int argc, char* argv[]) { OpenHashTable* tbl = OpenHashTableAlloc(); free(tbl); return 0; }

ryukak
質問者

お礼

解決しました! どうもありがとうございます。

その他の回答 (2)

回答No.2

エラーの意味はわかりませんが、OpenHashTableAlloc()の戻り値を OpenHashTable*に修正すればコンパイル通りませんか? 他におかしなところが見当たらないので。

  • samtomsan
  • ベストアンサー率55% (1060/1897)
回答No.1

下記の (2)関数から構造体を受け取る を参照してみてください。 struct をつければいいのかな(すみません、やったことがありません) http://www9.plala.or.jp/sgwr-t/c/sec15-4.html