jonhhy Posted February 12, 2017 at 10:21 AM Report Share #602443 Posted February 12, 2017 at 10:21 AM 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 More sharing options...
HappyHippyHippo Posted February 12, 2017 at 10:28 AM Report Share #602444 Posted February 12, 2017 at 10:28 AM 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 1 Report IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
jorge duarte Posted February 12, 2017 at 02:06 PM Report Share #602445 Posted February 12, 2017 at 02:06 PM 3 horas atrás, HappyHippyHippo disse: 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 Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now