Jump to content

Ponteiros


jonhhy

Recommended Posts

Olá tenho dois códigos semelhantes um do livro do "Linguagem C" do Damas e outros do site tutorialpoints e são semelhantes mas no primeiro dá erros e no 2º não, não encontrei justificação

o código é este:

#include <stdio.h>

void cPointerToPointer ();
void cap8e05();

int main()
{
	cPointerToPointer();
	cap8e05();
	
	return 0;
}



void cap8e05()
{
	int x = 5;
	int *ptr_x;		//ponteiro de x
	int **ptr_ptr_x;	//ponteiro para o ponteiro de x
	
	//carga inicial dos ponteiros
	
	ptr_x = &x;
	ptr_ptr_x = &ptr_x;
	
	printf("x = %d - &x = %p\n",x, &x);
	printf("x = %d - &x = %p\n",*ptr_x, ptr_x);
	printf("x = %d - &x = %p\n",**ptr_x, *ptr_x);
	
}
 
void cPointerToPointer () {  // https://www.tutorialspoint.com/cprogramming/c_pointer_to_pointer.htm

   int  var;
   int  *ptr;
   int  **pptr;

   var = 3000;

   /* take the address of var */
   ptr = &var;

   /* take the address of ptr using address of operator & */
   pptr = &ptr;

   /* take the value using pptr */
   printf("Value of var = %d\n", var );
   printf("Value available at *ptr = %d\n", *ptr );
   printf("Value available at **pptr = %d\n", **pptr);
}

no primeiro estava a dar warnings com o formato  %ld para * int (para os &) e substitui pelo %p, pois encontrei na na net: como sendo mais indicado .

Obrigado desde já!

Link to comment
Share on other sites

a justificação está na mesnagem de warning que te é apresentada.

o formato esperado para a apresentação de dados do tipo ponteiro é realmente o %p. quando dizes que queres apresentar com um long (%ld) o compilador apresenta-te essa mensagem

  • Vote 1
IRC : sim, é algo que ainda existe >> #p@p
Link to comment
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
×
×
  • Create New...

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.