みなさん有難うございます。結論から申し上げるとVisualC++のバグ?のようですorz

struct division {
int x;
int y;
};

typedef struct division elementtype;

struct stack {
int top;
elementtype elements[STACKSIZE];
};

elementtype pop(struct stack *s) {
if (s->top < 0) {
printf("stack underflow"); exit(1); }
else return s->elements[s->top--];
}

メイン関数でpushはうまくできたのですが、popをするとエラーが発生してしまい、
原因がさっぱりだったため、血迷って愚かな質問をしてしまい申し訳ありません。
popの戻り値がおかしかった(メンバx,y共になぜかtop-1の値が入っている)ので、
[s->top--]のところの--を取ってみたらメンバの値が正常に入力されていました。
そこで、まさかと思いLinuxでコンパイルしてみたらできました・・・。
これでやっと宿題が始められます。お騒がせいたしました。

>148
その通りです