私はCプログラミングに比較的慣れておらず、区切り文字チェッカーを作成しようとしていますが、何らかの理由でコードを実行して区切り文字をチェックするための入力を取得するたびに、セグメンテーション違反(コアダンプ)エラーが発生します。
以下はメインプログラムのコードです。
int
main (void)
{
char* mystring;
printf ("Please enter a string\n");
gets(mystring);
if (fsm(mystring))
{
printf ("All matched");
}
}
ただし、サブプログラムの先頭に右fsm
を入れても表示されないため、サブプログラムに入らないようです。ただし、入力を要求し、メインプログラムのサブプログラム行の前にprintf
入力すると出力されます。printf
これが私のプロトタイプです:
boolean fsm(char[]);
それが助けになるなら、これがサブプログラムの始まりです:
boolean fsm (char mystring[])
{
printf("here\n");
int counter = -1;
int state = 0;
c_stack top;
c_init_stack (&top);
while (1)
{
switch (state)
{
case 0:
counter = counter + 1;
if (is_open (*mystring))
state = 1;
else if (is_close (*mystring))
state = 2;
else if (mystring = '\0')
state = 3;
else
state = 4;
break;