conversão de ‘int*’ para ‘int’ inválida [-fpermissive] [RESOLVIDO]

1. conversão de ‘int*’ para ‘int’ inválida [-fpermissive] [RESOLVIDO]

Jean Francisco Cavalcante
cavalcantejean

(usa Ubuntu)

Enviado em 30/03/2013 - 15:41h

Olá, estou programando através do vim e compilando através do gcc este programa:

#include<stdlib.h>
#include<stdio.h>

int main()
{
int vet[5],i,numero;
for(i=0;i<5;i++)
{
printf("Digite o numero");
scanf("%d",&numero);
vet[i]=&numero;
}

for(i=0;i<5;i++)
{
printf("Valores digitados: %d",vet[i]);
}

return 0;
system("system");
}

Porém quando compilo através do gcc aparece a segunte mensagem:conversão de ‘int*’ para ‘int’ inválida [-fpermissive]


  


2. Conversão errada

Eduardo Rafael Freitas da Silva
EduardoRFS

(usa Debian)

Enviado em 30/03/2013 - 16:12h

O seu erro é na linha "vet=&#8470;" por que você esta dizendo que o inteiro 'vet' é igual a localização do inteiro 'numero' &numero é um ponteiro ou seja a localização da variavel exp: Vamos supor que 'numero' esteja na localização 0x0020a0f0 então você estaria dizendo que vet é igual a 0x0020a0f0.

Solução: "vet=numero;"


3. Re: conversão de ‘int*’ para ‘int’ inválida [-fpermissive] [RESOLVIDO]

Jean Francisco Cavalcante
cavalcantejean

(usa Ubuntu)

Enviado em 30/03/2013 - 16:25h

quando coloquei

vet[i]=numero;

apareceu a seguinte mensagem

/tmp/ccjIBjAI.o:(.eh_frame+0x13): referência indefinida para `__gxx_personality_v0'
collect2: error: ld returned 1 exit status


4. Re: conversão de ‘int*’ para ‘int’ inválida [-fpermissive] [RESOLVIDO]

Jean Francisco Cavalcante
cavalcantejean

(usa Ubuntu)

Enviado em 30/03/2013 - 16:27h

quando coloquei

vet[i]=numero;

apareceu a seguinte mensagem

/tmp/ccjIBjAI.o:(.eh_frame+0x13): referência indefinida para `__gxx_personality_v0'
collect2: error: ld returned 1 exit status


5. Re: conversão de ‘int*’ para ‘int’ inválida [-fpermissive] [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 30/03/2013 - 19:00h

vet = numero;

vet é o endereço do primeiro item do vetor. Por isso dá esse erro.

Você precisa colocar o índice:

vet[i] = numero.


6. Re: conversão de ‘int*’ para ‘int’ inválida [-fpermissive] [RESOLVIDO]

Jean Francisco Cavalcante
cavalcantejean

(usa Ubuntu)

Enviado em 30/03/2013 - 19:10h

Eu coloquei índice e apareceu a seguinte mensagem de erro:

/tmp/cc91sSFf.o:(.eh_frame+0x13): referência indefinida para `__gxx_personality_v0'
collect2: error: ld returned 1 exit status



7. Re: conversão de ‘int*’ para ‘int’ inválida [-fpermissive] [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 30/03/2013 - 19:12h

cavalcantejean escreveu:

Eu coloquei índice e apareceu a seguinte mensagem de erro:

/tmp/cc91sSFf.o:(.eh_frame+0x13): referência indefinida para `__gxx_personality_v0'
collect2: error: ld returned 1 exit status


system("system"); 


Por que você colocou esses dois SYSTEMs?


8. Re: conversão de ‘int*’ para ‘int’ inválida [-fpermissive] [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 30/03/2013 - 19:14h

Listeiro 037 escreveu:

vet = numero;

vet é o endereço do primeiro item do vetor. Por isso dá esse erro.

Você precisa colocar o índice:

vet[i] = numero.


A mensagem não está saindo. Precisa usar a marcação [ code ] sem os espaços.

vet[i] = numero. 


Agora está melhor.




9. Re: conversão de ‘int*’ para ‘int’ inválida [-fpermissive] [RESOLVIDO]

Jean Francisco Cavalcante
cavalcantejean

(usa Ubuntu)

Enviado em 30/03/2013 - 20:16h

Assim que o código está


#include<stdio.h>
#include<stdlib.h>

int main()
{
int vet[5],i,numero;

for(i=0;i<5;i++)
{
printf("Entre com o numero");
scanf("%d",&numero);
vet[i]=numero;
}
for(i=0;i<5;i++)
{
printf(" %d",vet[i];
}
return 0;
system("pause");
}


porém, continua retornando o erro quando compila no gcc:

/tmp/ccfWwrJb.o:(.eh_frame+0x13): referência indefinida para `__gxx_personality_v0'
collect2: error: ld returned 1 exit status



10. Re: conversão de ‘int*’ para ‘int’ inválida [-fpermissive] [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 30/03/2013 - 22:40h

#include<stdio.h>
#include<stdlib.h>

int main()
{
int vet[5],i,numero;

for(i=0;i<5;i++)
{
printf("Entre com o numero : ");
scanf("%d",&numero);
vet[i]=numero;
}

for(i=0;i<5;i++)
{
printf(" %d",vet[i]);
}

return 0;

system("pause");

}


Eu compilei aqui prá desencargo e funcionou.

Por esse "pause" no seu código eu percebi que ou você está no Win ou você viu isso em algum lugar.

Esse "pause" não "costuma" dar certo em Linux.

Não sei se você está usando Dev-C++ ou Codeblocks como IDE.

Mas encontrei essas postagens de outros lugares falando desse erro:

* http://ubuntuforum-pt.org/index.php?topic=99574.0
* http://pt.techerald.com/page/referencia-no-definida-al-compilar-contra-las-librerias-generadas-por-a...
* http://unidev.com.br/phpbb3/viewtopic.php?f=21&t=50476&hilit=0x56

Aparentemente o problema é na etapa de linkagem. Tenho que saber quais ferramentas está usando.







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts