Ir para conteúdo
  • Cadastre-se

Erros Em C


Posts Recomendados

Olá, pessoal.

Sou um iniciante em C. Alguém pode ver o código abaixo e me apontar os possíveis erros?

Estou usando o tipo long long pra armazenar números grandes, mas ao declarar duas arrays desse tipo, as variáveis read e write ganham números maiores do que o esperado no primeiro loop (queira analizar abaixo) - apenas quando acrescento long long int writecount[5] = { 0 }.



int

main(int argc, char *argv[])

{


int delay = 1;

int count = 0;

int limit = 5;

int index = 0;

long long io = 0;

long long read = 0;

long long write = 0;


long long int value = 0;

long long int average = 0;

long long int readcount[5] = { 0 };

long long int writecount[5] = { 0 };

//long long readavg = 0;

//long long writeavg = 0;


while (limit == -1 || count++ < limit)

{

io = get_stats(&read, &write);

printf ("I/O: %8llu\n", io);

printf ("Read: %8llu\n", read);

printf ("Write: %8llu\n", write);

printf ("Count: %d\n", count);


readcount[count] = read;

//writecount[count] = write;

//printf ("Now: %llu\n", writecount[count]);

if (count > 1) {

index = count - 1;

printf ("Index: %d\n", index);

value = readcount[count] - readcount[index];

printf ("Read diff: %llu\n", value);


//readavg += value;

//value = writes[count] - writes[index];

//printf ("Write diff: %llu\n", value);

//writeavg += value;

}


if (count != limit) sleep(delay);

}

/*average = readavg / (limit - 1);

printf ("Read avg: %llu\n", average);

average = writeavg / (limit - 1);

printf ("Write avg: %llu\n", average);*/


return 0;

}

Solução: usar operadores cast pra definir números do tipo double (no caso da divisão) e usar modificados do tipo unsigned e double quando necessário, além de modificar a função printf pra exibir números do tipo signed long.

Nota: ou não tem ninguém aqui no fórum que entenda de C ou ninguém gosta de compartilhar seu conhecimento. Em ambos os casos eu lamento.

Não há bem nem mal que dure para sempre. Um dia tudo acaba.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...

Informação Importante

Concorda com os nossos termos?