queueとlist

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
blackman

queueとlist

#1

投稿記事 by blackman » 16年前

キューを使った簡単な計算機プログラムです。
コンパイルエラーについての質問です。

ソースが長いためとりあえず原因となり得る箇所をピックアップします。
struct queuen{
double data;
struct queuen *next;
};

struct queuen *sp=NULL;

struct list{
struct queuen *head;
struct queuen *tail;
};

struct list *lst;

lst->head = sp;//←ここが問題の21行目です。
lst->tail = sp;

コンパイルすると
c:21:error : parse error before '->' token
となります。

原因が分からないので教えていただけませんか?

ねこ

Re:queueとlist

#2

投稿記事 by ねこ » 16年前

lst->head = sp;
lst->tail = sp;

これらの処理は関数外では記述できません。
main関数の上の方に移せば動くんじゃないでしょうか。

blackman

Re:queueとlist

#3

投稿記事 by blackman » 16年前

>>プログラマーさん

ご指摘ありがとうございます。
ご指摘に従って修正しました(修正したソースを添付しています)ところ、
コンパイルは通ったのですが、実行時において

$ ./a.exe
201 [main] a 11440 _cygtls::handle_exceptions: Error while dumping state
(probably corrupted stack)
Segmentation fault (core dumped)

このようなエラーが出てしまいます。
main()のwhile文に入る前にエラーが出ているため、恐らく
main()内の
lst->head = sp;
lst->tail = sp;
におけるエラーだと思いますが、原因がつかめません。
たびたび申し訳ありませんが教えていただけないでしょうか?

ちなみにwindows vista で cygwinを使っています。
./a.exeによる実行です。

ねこ

Re:queueとlist

#4

投稿記事 by ねこ » 16年前

lst変数にメモリが確保されてません。newかmallocで確保してから設定して下さい。

閉鎖

“C言語何でも質問掲示板” へ戻る