Jump to content
  • 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"

Recommended Posts

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?

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.