gravetu Postado Março 11, 2008 Denunciar Share Postado Março 11, 2008 Boas!percebo muito pouco de c, e tenho o seguinte problema pra resolver:/* Incluir os headers do sistema necessários */#include <stdlib.h>#include <stdio.h>/* Incluir o nosso header */#include "vector.h"/* Definir a nossa struct para os vectores */struct _vector_t { size_t size; int *data;};/* Criar um novo vector com tamanho 1*/vector_t *vector_new() { vector_t *retval; /* Temos que primeiro alocar memória para a nossa estrutura de dados */ retval = (vector_t *)malloc(1 * sizeof(vector_t)); /* Verificar o valor devolvido para ter a certeza que obtivemos a memória pedida */ if(retval == NULL) return NULL; /* Temos agora que inicializar os dados */ retval->size = 1; retval->data = (int *)malloc(retval->size * sizeof(int)); /* Verificar o valor devolvido para ter a certeza que obtivemos a memória pedida */ if(retval->data == NULL) { free(retval); return NULL; } retval->data[0]= 0; /* Note que 'retval->size' poderia escrever-se '(*retval).size', * mas a notação '->' é mais prática */ /* e terminamos com o ponteiro para o que se criou... */ return retval;}/* Libertar a memória alocada para o vector passado à função */void vector_delete(vector_t *v) { /* Não esquecer, tem que libertar TODA a memória que está alocada para este vector*/ /* --- ESCREVA O SEU CÓDIGO AQUI --- */}/* Devolver o valor de um elemento do vector */int vector_get(vector_t *v, size_t loc) { /* Se foi passado um ponteiro NULL pointer para o vector * protestar e devolver 0. */ if(v == NULL) { fprintf(stderr, "vector_get: passed a NULL vector. Returning 0.\n"); return 0; } /* Se a posição do elemento pretendido for maior que o tamanho alocado * devolver 0, senão devolver o valor do elemento pretendido. */ if(loc < v->size) { return v->data[loc]; } else { return 0; }}/* Colocar um valor no vector */void vector_set(vector_t *v, size_t loc, int value) { /* vector deve ter um comportamento dinâmico, aceitando sempre mais elementos. * O que fazer quando a localização do elemento a colocar é maior que o tamanho já alocado? * Não esquecer que elemntos não inicializados devem ficar a 0. */ /* --- ESCREVA O SEU CÓDIGO AQUI --- */}Os comentários no código indicam o funcionamento pretendido das diversas funções aimplementar. Analisando o código já implementado poderá ver como devem ser utilizadas asestruturas de dados definidas. Não esquecer que o malloc() não coloca a zero a zona dememória que aloca, e que neste caso pretende-se que os valores iniciais dos vectores sejamtodos 0.se alguém poder ajudar desde já agradeçoabraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 gravetu Postado Março 12, 2008 Autor Denunciar Share Postado Março 12, 2008 deixem lá..já resolvi ;)obrigado na mesmacumps Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
gravetu
Boas!
percebo muito pouco de c, e tenho o seguinte problema pra resolver:
se alguém poder ajudar desde já agradeço
abraço
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.