glopes41 0 Denunciar post Postado Setembro 11, 2009 Olá pessoas, Fiz alocação dinâmica de uma matriz bidimensional(3x3) com o seguinte codigo: float **matriz() { float **v; int i; /* aloca as linhas da matriz */ v = (float **) malloc(3*sizeof(float *)); /* aloca as colunas da matriz */ for ( i = 0; i < 3; i++ ) v[i] = (float*) malloc (3*sizeof(float)); return v; } Eu quero percorrer toda a matriz v apenas incrementando um ponteiro. Se eu fizer um laço e incrementar **v++, acesso apenas o primeiro elemento de cada linha. Aguem sabe como fazer isso, ou mesmo se é possivel fazer isso? Obrigado Compartilhar este post Link para o post Compartilhar em outros sites
VictorCacciari 42 Denunciar post Postado Setembro 11, 2009 Glopes, não é possível percorrer uma matriz com apenas um ponteiro. você pode simular uma matriz. Por exemplo: #define COLS 10 float access_as_matrix(float *m, int line, int col) { return m[line*COLS + col]; } float matriz[10][10]; //guardará 10*10 floats, float matriz_sim[100]; //também guardará 100 floats printf("%f\n", matriz[2][4]); printf("%f\n", access_as_matrix(matriz_sim, 2, 4)); Compartilhar este post Link para o post Compartilhar em outros sites
glopes41 0 Denunciar post Postado Setembro 11, 2009 VictorCacciari, Valeu pela dica, ajudou bastante cara. Ate mais. Compartilhar este post Link para o post Compartilhar em outros sites