online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code    Language
#include <stdio.h> #include <stdlib.h> #define COR_BRANCA 1 #define COR_PRETA 0 #define VALOR_COR_BRANCA ' ' #define VALOR_COR_PRETA '#' struct icone { unsigned char *pixels; int tamanho; }; struct icone *cria_icone(int tamanho); void libera_icone(struct icone **ico); void limpa_icone(struct icone *ico, unsigned char cor); void icone_atribui(struct icone *ico, int linha, int coluna, unsigned char valor); void icone_mostra(struct icone *ico); int main(void) { struct icone *ico = cria_icone(8); if (ico == NULL) { perror("nao foi possivel reservar memoria do sistema!"); exit(EXIT_FAILURE); } limpa_icone(ico, COR_BRANCA); icone_atribui(ico, 0, 0, COR_PRETA); icone_atribui(ico, 0, 7, COR_PRETA); icone_atribui(ico, 7, 0, COR_PRETA); icone_atribui(ico, 7, 7, COR_PRETA); icone_atribui(ico, 4, 4, COR_PRETA); icone_mostra(ico); libera_icone(&ico); return(0); } struct icone *cria_icone(int tamanho) { struct icone *ico = malloc(sizeof(*ico)); if (ico != NULL) { ico->pixels = malloc(sizeof(*ico->pixels)*tamanho*tamanho); if (ico->pixels != NULL) { ico->tamanho = tamanho; return(ico); } free(ico); } return(NULL); } void libera_icone(struct icone **ico) { if (*ico != NULL) { if ((*ico)->pixels != NULL) { free((*ico)->pixels); (*ico)->pixels = NULL; } free(*ico); *ico = NULL; } } void limpa_icone(struct icone *ico, unsigned char cor) { int linhas, colunas; for (linhas = 0; linhas < ico->tamanho; linhas++) { for (colunas = 0; colunas < ico->tamanho; colunas++) { ico->pixels[linhas*ico->tamanho+colunas] = cor; } } } void icone_atribui(struct icone *ico, int linha, int coluna, unsigned char valor) { if (linha < ico->tamanho && coluna < ico->tamanho) { ico->pixels[linha*ico->tamanho+coluna] = valor; } } void icone_mostra(struct icone *ico) { int linhas, colunas; for (linhas = 0; linhas < ico->tamanho; linhas++) { for (colunas = 0; colunas < ico->tamanho; colunas++) { if (ico->pixels[linhas*ico->tamanho+colunas] == COR_BRANCA) { printf("%c", VALOR_COR_BRANCA); } else { printf("%c", VALOR_COR_PRETA); } } printf("|\n"); } for (colunas = 0; colunas <= ico->tamanho; colunas++) { printf("-"); } printf("\n"); }

Compiling Program...

Command line arguments:
Standard Input: Interactive Console Text
×

                

                

Program is not being debugged. Click "Debug" button to start program in debug mode.

#FunctionFile:Line
VariableValue
RegisterValue
ExpressionValue