28. juni 2006 - 04:21
Der er
10 kommentarer og 1 løsning
Pointer til pointer
jeg sad og legede lidt med pointers og prøvede nogen ting og sådan. kan nogen fortælle mig hvorfor følgende kode crasher: #include "stdafx.h" #define NUMBER 100 int main(int argc, char* argv[]) { int First = (int )NUMBER; int* Second = (int* )NUMBER; int** Third = (int**)NUMBER; printf("First = %i\n", First ); printf("Second = %i\n", Second); printf("Third = %i\n\n", Third ); Second = &First; *Second = NUMBER-1; Second = (int*)NUMBER; printf("First = %i\n", First ); printf("Second = %i\n", Second); printf("Third = %i\n\n", Third ); Third = &Second; **Third = NUMBER-1; // <<< CRASH!!! Third = (int**)(NUMBER+1); printf("First = %i\n", First ); printf("Second = %i\n", Second); printf("Third = %i\n\n", Third ); return 0; }
Annonceindlæg fra HP
Second = (int*)NUMBER; Second indeholder 100 Third = &Second; Third indeholder adressen på Second *Third er Second og dermed 100 **Third er indholdet af adresse 100 og den har du ikke adgang til at opdatere (måske ikke engang til at læse)
hej arne.. det jeg ville have den til er Third skulle holde værdien for NUMBER +1
og pointers er ret nyt for mig :)
det gør du også i Third = (int**)(NUMBER+1); men Third = &Second; **Third = NUMBER-1; giver problemet som beskrevet
hvordan ville jeg gøre det så.. jeg prøvede at få Third til at decrease Second med 1.
*Third = (int*)(NUMBER-1);
men du har forhåbentlig ikke tænkt dig at bruge pointere på den måde i rigtige kode
altså det er bare nogen forsøg jeg tester med pointers.. jeg har aldrig rigtig brugt pointers før eller haft brug for dem egentlig. har stadig lidt svært ved at se pointen ved brug af pointers :) men det er nok fordi jeg ikke helt forstår det vel.
dynamisk allokering af arrays out argumenter ved funktionas kald data strukturer som linkede lister eller traer
07. juli 2006 - 16:39
#10
ok vil du lave et svar? :)
07. juli 2006 - 21:28
#11
kommer her
Kurser inden for grundlæggende programmering