Ir para conteúdo
Fórum Script Brasil
  • 0

Problemas com Dev-C++ -- Matriz


Guilherme Moraes

Pergunta

Ola,sou iniciante em programação e estou enfrentando o seguinte erro de compilação acusado pelo dev-c++ :passing arg1 of 'função' makes pointer from integer without a cast.

é um simples programa de inversão de matriz em que declaro duas funções, uma para imprimir e outra para inverter tomando por exemplo uma delas:

declaro a função assim--> void transpor(int v[MAX][MAX]) {comandos}

e na função main() eu quando vou utiliza-la( transpor(a[MAX][MAX]); ) com um vetor já declarado( int a[MAX][MAX]={{1,2,3},{4,5,6},{7,8,9}}; ) da aquele erro...mas eu entendo que to passando a[][] com inteiros e não ponteiros :wacko:

mais uma obeservação: no inicio do código eu declaro MAX ( #define MAX 3 )

resumindo ta ai o codigo ^^

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

#include<stdio.h>

#define MAX 3

void transpor(int v[MAX][MAX])

{

int u[MAX][MAX],i,j;

for(i=0; i<MAX; i++)

for(j=0; j<MAX; j++)

{

u[j]=v[j];

}

for(i=0; i<MAX; i++)

for(j=0; j<MAX; j++)

{

v[j]=u[j];

}

return;

}

void imprime(int v[MAX][MAX])

{

int i,j;

for(i=0; i<MAX; i++)

for(j=0; j<MAX; j++)

{

if(j!=MAX-1)

printf("%d",v[j]);

else

printf("%d\n",v[j]);

}

}

int main()

{

int a[MAX][MAX]={{1,2,3},{4,5,6},{7,8,9}};

printf("a transposta da matriz:\n");

imprime(a[MAX][MAX]);

transpor(a[MAX][MAX]);

printf("é a matriz:\n");

imprime(a[MAX][MAX]);

getch();

}

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Editado por Guilherme Moraes
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Fala Guilherme!

Na chamada de função, você deve passar a matriz inteira. E não somente:

printf("a transposta da matriz:\n");
imprime(a[MAX][MAX]);
No seu caso, você estaria passando somente uma posição da matriz. E mesmo assim, estaria incorreto, porque faltou o operador "&". Veja:
printf("a transposta da matriz:\n");
imprime(a);

Como toda matriz é um vetor de vetor, e como todo vetor é um ponteiro, não é necessário o operador "&" no argumento. É só consertar os outros erros, em todas as chamadas. Agora, estarei passando como argumento verdadeiramente o endereço de memória da matriz, para que um outro endereço nos parâmetros da função 'imprime' possa trabalhar.

O outro erro é o uso da função "getch()". A biblioteca <conio.h> de manipulação de caracteres não está inclusa, veja você mesmo.

Editado por Léo Ferreir?
Link para o comentário
Compartilhar em outros sites

  • 0

Vlw mesmo entendi ^^ no caso do getch o meu comp aki roda sem o conio.h ai nem me liguei em coloca...

Fala Guilherme!

Na chamada de função, você deve passar a matriz inteira. E não somente:

printf("a transposta da matriz:\n");
imprime(a[MAX][MAX]);
No seu caso, você estaria passando somente uma posição da matriz. E mesmo assim, estaria incorreto, porque faltou o operador "&". Veja:
printf("a transposta da matriz:\n");
imprime(a);

Como toda matriz é um vetor de vetor, e como todo vetor é um ponteiro, não é necessário o operador "&" no argumento. É só consertar os outros erros, em todas as chamadas. Agora, estarei passando como argumento verdadeiramente o endereço de memória da matriz, para que um outro endereço nos parâmetros da função 'imprime' possa trabalhar.

O outro erro é o uso da função "getch()". A biblioteca <conio.h> de manipulação de caracteres não está inclusa, veja você mesmo.

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...