[so]  [SO] Workshop 4 - Review
    Andrei Vasiliu 
    andrei.vasiliu2211 at cti.pub.ro
       
    Sat Mar 23 00:20:42 EET 2013
    
    
  
Buna,
Am avut aceasta intrebare la workshop si acum o am si de corectat:
Fie p un pointer către un întreg pe un sistem pe 32 de biţi. Ştiind că valoarea
lui p este 0xC0000004, ce valoare are p + 1? 
Mi se pare ca intrebarea nu e formulata foarte clar, in sensul ca daca pointerul
p spre integer este de tip int*, atunci p+1 este 0xC0000008, dar daca p este de
tip char*, atunci p+1 este 0xC0000005.
Am realizat si un program pentru a arata acest aspect:
#include <stdio.h>
int main(void){
    int a = 5;
    char *char_pointer_to_integer = (char*)&a;
    int *int_pointer_to_integer = &a;
    printf("char_pointer_to_integer = %p, char_pointer_to_integer+1 = %p\n",
char_pointer_to_integer, char_pointer_to_integer+1);
    printf("int_pointer_to_integer = %p, int_pointer_to_integer+1 = %p\n",
int_pointer_to_integer, int_pointer_to_integer+1);
    return 0;
}
care are output-ul:
char_pointer_to_integer = 0xbfa021a4, char_pointer_to_integer+1 = 0xbfa021a5
int_pointer_to_integer = 0xbfa021a4, int_pointer_to_integer+1 = 0xbfa021a8
QED ;))
Deci, cum ar trebui abordata aceasta intrebare?
Multumesc anticipat,
Andrei
    
    
More information about the so
mailing list