前提・実現したいこと
関数void pushの中のprintf("%c\n",p->c);
のところまで実行するようにしたいので原因を教えてほしいです
発生している問題・エラーメッセージ
関数の中の途中で止まってしまいます
pushする文字又はpop/endを入力してください-->n
n
eeee
ddn
fff
該当のソースコード
C ここに言語名を入力
ソースコード
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
struct cell {
char c;
struct cell *next;
};
struct cell *stack=NULL,*p;
void push(char data){
printf("dd%c\n",data);
p==(struct cell*)malloc(sizeof(struct cell));
printf("fff\n");
p->c=data;
printf("fff\n");
p->next=NULL;
printf("fff\n");
p->next=stack;
printf("fff\n");
stack=p;
printf("fff\n");
printf("%c\n",p->c );
}
int main(void){
char *s1 ="pop";
char *s2 ="end";
char *s3;
char in[10];
printf("pushする文字又はpop/endを入力してください-->");
scanf("%s",in);
printf("%s\n",in );
s3=in;
if (strcmp(s1,s3)==0){
printf("aaaa\n");
//pop();
}
else if(strcmp(s2,s3)==0){
printf("sss\n");
exit(1);
}
else if(strlen(in)!=1){
printf("不正な入力です\n");
printf("スタックを空にしました\n");
}
else{
printf("eeee\n");
push(in[0]);
}
return 0;
}
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー