Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

iGx

warning "warning: assignment makes integer from pointer without a cast"

Mensagens Recomendadas

iGx

Boa Tarde, sou novo no forum e venho aqui postar uma duvida que tenho acerca de um trabalho que estou a realizar para a minha cadeira de Programação Imperativa

	printf("\nInsira o novo nome ");
	fgets(nomeaux,99,stdin);
	nomeaux[strlen(nomeaux)-1]=NULL;
	a.nome=strdup(nomeaux);

Este codigo entre outros da-me o warning "warning: assignment makes integer from pointer without a cast" na linha do nomeaux[strlen(nomeaux)-1]=NULL;  Como posso corrigir isso? Ou ha alguma outra maneira de eliminar este problema?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
merlin3000

O problema é que em C NULL é do tipo ((void *)0) e o teu vector é do tipo char (que acaba por ser um inteiro disfarçado). Então como não estás a fazer o cast (Ex: (int)NULL ) ele avisa-te.

Só deves usar null no caso de estares a trabalhar com apontadores. Ex:

int* a;
a = NULL;

// Ou no teu caso se tivesses um vector de apontadores para caracteres

char* nomeaux[100];
nomeaux[0] = NULL;

no teu caso podes atribuir um caracter que não te interessa, para que saibas que esse campo ainda não tem um valor "válido". Por exemplo o '\0' que é usado normalmente para significar fim de string em C.


Criar é Divertido

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.