All pastes #460092 Raw Edit

Mine

public text v1 · immutable
#460092 ·published 2007-04-26 21:04 UTC
rendered paste body
eg har denne kode:

#include <iostream>
#include <iterator>

#define MAXSIZE 10
using namespace std;




int main()
{

  int array[MAXSIZE];   //Dette er mit array som jeg vil fylde op med integers
  int * pointer = 0; //Dette er min pointer som jeg vil bruge til at udskrive det der er i array'et


  //Jeg fylder her mit array op
  for(int i=0; i<=10; i++)
    {
      array[i] = i;
      cout << array[i]<< " adressen er " << &array[i] << endl;
    }
  cout << "Arrayet starter ved " << &array[0]<<endl;
  


  pointer = &array[0];
  cout << *pointer << " adressen er " << &pointer << endl;

}


Som giver følgende udslag
slot@Hooker:~/Programmering/C++$ g++ pointer_to_array.cpp
slot@Hooker:~/Programmering/C++$ ./a.out 
0 adressen er 0xbffffa10
1 adressen er 0xbffffa14
2 adressen er 0xbffffa18
3 adressen er 0xbffffa1c
4 adressen er 0xbffffa20
5 adressen er 0xbffffa24
6 adressen er 0xbffffa28
7 adressen er 0xbffffa2c
8 adressen er 0xbffffa30
9 adressen er 0xbffffa34
10 adressen er 0xbffffa38
Arrayet starter ved 0xbffffa10
0 adressen er 0xbffffa38
slot@Hooker:~/Programmering/C++$ 

Jeg kan ikke regne ud hvorfor min pointer har 0xffffa38 adressen, men kan skrive 0 ud. Jeg giver jo pointeren arrayets start. Hvorfor har den så ikke samme adresse?