動的配列で実装されたスタックを使用して、フレーズの括弧と括弧のバランスが取れているかどうかを確認する小さなプログラムを作成しています。これまでのところ、フレーズを isBalanced 関数に渡して、各文字を 1 つずつ出力してみました。プログラムが到達したとき:
printf("%s\n", nextChar(s));
セグメンテーション違反が発生し、型 char を渡し、型 int を期待することに関する警告が表示されます。どんな助けも大歓迎です。
char nextChar(char* s)
{
static int i = -1;
char c;
++i;
c = *(s+i);
if ( c == '\0' )
return '\0';
else
return c;
}
int isBalanced(char* s)
{
while(nextChar(s) != 0){
printf("%s\n", nextChar(s));
}
return 0;
}
int main(int argc, char* argv[])
{
char* s=argv[1];
int res;
res = isBalanced(s);
return 0;
}