1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Problema com matrizes em C

Discussão em 'Programação' iniciada por Djointster, 11 de Dezembro de 2008. (Respostas: 6; Visualizações: 617)

  1. Djointster

    Djointster Power Member

    O meu problema é este erro:

    invalid use of array with unspecified bounds

    Código:
    #include <stdio.h>
    #include <stdlib.h>
    
    #define Linha 25
    #define Coluna 25
    
    void init_array(int array[][]) { /*o erro acontece nesta linha*/
       
       int i,j;
       
       for(i=0;i<Linha;i++)
          for(j=0;j<Coluna;j++)
             array[i][j]=0;         
    }
    
    
    
    int main() {
       
       int a[Linha][Coluna];
       int next[Linha][Coluna];
       
       init_array(a);
       init_array(next);
       
       
       
       system("PAUSE");
       return 0;
    }
    
    
    gostava que me dessem sugestões para passar a matriz para a função...
     
  2. IComeFromBehind

    IComeFromBehind Power Member

    passas int** em vez de [][]
     
  3. Djointster

    Djointster Power Member

    mas assim não tenho que definir a matriz como int** matriz e fazer os respectivos mallocs?
    ele assim dá warning de incompatible pointer type...
     
  4. AliFromCairo

    AliFromCairo Power Member

    Boas, troca int array[][] por int array[][Coluna].
     
  5. Djointster

    Djointster Power Member

    Boas e obrigado.
    Assim já funciona.

    Já agora porque é que com duas dimensões precisa de um índice para uma das dimensões?
    Se fosse int array[] ele funcionava as 1000 maravilhas.
     
  6. AliFromCairo

    AliFromCairo Power Member

    Porque o compilador precisa de saber a dimensão de cada um dos elementos do array, de modo a poder fazer a indexação através de [][]. Quando tens apenas int array[], o compilador sabe como a indexação deve ser feita, uma vez que estás a indicar o tamanho de cada elemento, i.e. sizeof(int).

    Espero que tenhas ficado esclarecido :007:.
     
  7. Djointster

    Djointster Power Member

    Sim fiquei esclarecido. :D

    Obrigado :003:
     

Partilhar esta Página