- ベストアンサー
Unix系GNOME端末での12行目のエラーについての質問
- Unix系のGNOME端末でプログラムのコンパイル中に、12行目でエラーが発生しました。
- エラーメッセージは「expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘OpenHashTableAlloc’」です。
- このエラーの意味や解決策について教えていただけますか?
- みんなの回答 (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; }
その他の回答 (2)
- gerugugu84
- ベストアンサー率37% (29/78)
エラーの意味はわかりませんが、OpenHashTableAlloc()の戻り値を OpenHashTable*に修正すればコンパイル通りませんか? 他におかしなところが見当たらないので。
- samtomsan
- ベストアンサー率55% (1060/1897)
下記の (2)関数から構造体を受け取る を参照してみてください。 struct をつければいいのかな(すみません、やったことがありません) http://www9.plala.or.jp/sgwr-t/c/sec15-4.html
お礼
解決しました! どうもありがとうございます。