Olá Henrike. Eu executei o seu código aqui com a dica do Durub e funcionou. O seu código ficou assim. #include <stdio.h>
#include <stdlib.h>
#define linha 3
#define coluna 3
int soma(int[linha][coluna]);
int matriz[linha][coluna];
int main()
{
int clin, ccol, result;
for(clin=0; clin<linha; clin++)
{
for(ccol=0; ccol<coluna; ccol++)
{
printf("Digite o valor: ");
scanf("%i", &matriz[clin][ccol]);
}
}
result=soma(matriz);
printf("O valor da soma da matriz e': %i", result);
system("pause");
return 0;
}
int soma(int matriz[linha][coluna])
{
int result=0, clin, ccol;
for(clin=0; clin<linha; clin++)
{
for(ccol=0; ccol<coluna; ccol++)
{
result=result+matriz[clin][ccol];
}
}
return result;
} O motivo do erro é porque o compilador precisa saber quanto de memória ele precisa alocar, por isso você deve informar o tamanho da matriz, mesmo quando for passar para uma função. Agora você deveria declarar "matriz[][]" como local em main, não precisava ser global. Abraço.