Pessoal to precisando de uma ajuda, to com duvidas num programa que utiliza pilhas, ela ta compilando, mas na hora que eu digito a palavra apareceu que foi detectado um erro e o programa precisa ser fechado, alguem sabe o que pode ser isso, o programa serve para verificar se o numero de parenteses da string estao iguais, vo posta o codigo aqui embaixo e agradeço se alguem puder me ajudar.
Código:
#include <stdio.h> #include <stdlib.h> #define TAM 100 typedef struct { int topo; char dado[TAM]; }pilha_t; char pop(pilha_t *pilha){ if(pilha -> topo == -1){ printf("pilha vazia"); return 1 ; }else{ pilha -> topo--; return pilha -> dado[pilha -> topo + 1]; } } void push( pilha_t *pilha, char novo_elemento){ if (pilha -> topo < TAM){ pilha -> topo++; pilha -> dado[pilha -> topo] = novo_elemento; }else{ printf("pilha cheia"); } return; } bool empty(pilha_t *pilha){ if(pilha -> topo == -1){ return true; }else{ return false; } } bool balanced_parentheses(char *string){ pilha_t pilha; int i; int cont = 0; while (string != '\0'){ for(i = 0; i < TAM; i++){ if(string[i] == '('){ cont ++; }else if(string[i] == ')'){ cont--; } if (cont < 0){ return false; } } if(cont != 0){ return false; }else{ return true; } } } int main(){ char *string; printf("Digite a expressao!\n"); scanf("%s", &string); if(balanced_parentheses(string)){ printf("Parenteses corretos"); }else{ printf("parenteses errados"); } system ("pause"); return 0; }
Comment