Я делаю небольшую программу, которая будет использовать стек, реализованный с динамическим массивом, чтобы проверить, имеет ли фраза сбалансированные скобки и скобки. До сих пор я просто попробовал передать фразу функции isBalanced и просто попытался распечатать каждый символ по одному. Когда программа получает:Проблема с аргументом указателя/функции?
printf("%s\n", nextChar(s));
Я получаю ошибку сегментации и предупреждение о прохождении символьного типа и ожидания типа int.Any помощи очень ценятся.
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;
}
Вы *** действительно очень *** нужно прочитать руководство по 'Е()', прежде чем пытаться использовать его. Ошибка очевидна. – 2013-04-20 10:36:58
следующийChar (s) возврат char, не char *. % s требуется char *. – BLUEPIXY
printf ("% c \ n", nextChar (s)); это будет работать –