Encontrando erros em seus programas

Publicado por Leonardo Barrozo dos Santos em 10/03/2003

[ Hits: 8.373 ]

 


Encontrando erros em seus programas



Na linguagem C, as vezes é muito difícil nós encontrarmos um erro em nosso programa. Principalmente, quando o programa compila direitinho, mas na hora de rodar não funciona.

Aconselho a vocês que caso isso aconteça, comecem a colocar printf nos locais onde suspeita que estejam os erro. Exemplo:
printf("Estou aqui");
pilha[topo] = 10;
printf("Passei");
Caso a variável pilha fosse um array de 10 e a variável topo fosse maior que 10, ocorreria um erro inesperado em seu programa e você não saberia onde o erro estaria. Com os printf os erros podem ser encontrados mais rapidamente.

Outras dicas deste autor

Porque fgets() ao invés de gets()

Interface gráfica com C

Passar variáveis char para inteiro

Conversão de tipos de dados em C/C++

Leitura recomendada

Qt - Adicionando uma foto em Label (QLabel)

Declaração de variáveis em C

Mais um curso de linguagem C

Desenvolvimento com C/C++ e GTK

Instalando a biblioteca libxml2

  

Comentários
[1] Comentário enviado por a032330559 em 21/10/2004 - 18:09h

para encontrar erros pos compilacao em programas que usam C como linguagem use o F7 no rhide

[2] Comentário enviado por Sacred em 05/12/2004 - 11:48h

Posso fazer uma pergunta?
Eu sou iniciante em C e já tenho feito muitos Scripts para testar certos comandos, mas 100% deles sempre dão o mesmo erro na hora de compilar!
Vou mostrar aqui o meu script para testar o printf ( não riem, por favor )

#include <stdio.h>
#include <conio.h>
void main(){
int a = 3;
float f = 5.83;
char* nome = "Sacred";
char* letra = 't';

clrscr();

printf("Essa coisa funciona");
printf("So pra garantir se funciona mesmo");
printf("Printf funcional");

printf("\n%c",letra);

printf("\nMeu nome e %s",nome);

printf("\n%s tem %d amigos",nome,a);
};


Olhem os erros:
script2.c: In function `main':
script2.c:7: warning: initialization makes pointer from integer without a cast
script2.c:3: warning: return type of `main' is not `int'
script2.c:21:1: warning: no newline at end of file

Pode me dizer se isso é problema no GCC ou no meu script?
Grato.

[3] Comentário enviado por alvaro_melo em 14/06/2005 - 21:50h

Para isso voce tambem pode usar o Debugger que vem em alguns compiladores

[4] Comentário enviado por jochan em 14/12/2005 - 14:44h

Muito legal, vai me ajudar bastente no meu projeto de C++ ... =)

[5] Comentário enviado por removido em 03/05/2006 - 11:17h

Pra começar muda void main() para int main();
e elimina o ; da ultima linha depois da chaveta;

Isso deve eliminar os 2 ultimux erros

E so 1 sugestao ainda nao experimentei**

[6] Comentário enviado por removido em 09/08/2006 - 20:31h

Uma coisa que eu uso muito são as diretivas do pré-processador. Acrescente no início do código a linha #define DEBUG 1. Onde queira adicionar os 'printf's davida, faça o seguinte:
#if DEBUG == 1
printf("...");
#endif
Ou seja, quando lá em cima o DEBUG estiver definido como 1, ele colocará o printf no produto final, no programa compilado. Caso queira remover todos os printfs de uma vez, é só alterar o valo do DEBUG para diferente de 1. Assim, se código sempre terá os printfs na hora que quiser, só alterando um caracter. ;)

[7] Comentário enviado por humbhenri em 27/08/2006 - 14:04h

Sacred,
Na linha char* letra='t' deveria ser char* letra="t". Nao testei.

[8] Comentário enviado por berreto em 03/11/2006 - 19:33h

Obrigado pela diga, pra mim q sou iniciante foi de muita utilidade.
vakeu111

[9] Comentário enviado por f_Candido em 22/09/2007 - 21:25h

Interessante. Auxilia bastante, principalmente no uso de Ponteiros.

[10] Comentário enviado por pirrola em 22/03/2008 - 13:00h

por isso q eh bom trabalhar com funções...pois com funções pode-se testar pedaços separadamente do programa



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts