回答編集履歴

1 説明の改善

sigsegv

sigsegv score 339

2021/04/28 19:33  投稿

>  p->size = sizeof(p->arr); //ここが怪しい
sizeof(p->arr)は、arrのサイズ(=ポインタのサイズ、固定値)になります。領域サイズを入れようとしているのかもしれませんが、スタックの大きさを入れるのがいいでしょう。例) p->size = size;
sizeof(p->arr)は、arrのサイズ(=ポインタのサイズ、固定値)になります。arrが指す領域のサイズを入れようとしているようですが、スタックの要素数を入れるのがいいでしょう。例) p->size = size;
というか
> bool istack_full(istackp p) { return p->ptr > p->size; }
2()ないの数字を変えても出力結果が同じ理由
1.の通り。
あと、test_of_fullstack(char *t) に false を返すコードがない。warning でてるでしょ。
前述の通り

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る