Ho un puntatore all'array intero di 10. Cosa deve dereferenziare questo puntatore?puntatore di dereferenziamento all'array intero
Esempio:
#include<stdio.h>
main()
{
int var[10] = {1,2,3,4,5,6,7,8,9,10};
int (*ptr) [10] = &var;
printf("value = %u %u\n",*ptr,ptr); //both print 2359104. Shouldn't *ptr print 1?
}
Oppure è possibile eseguire il cast su un tipo intero appropriato, ad esempio uintptr_t da "", e utilizzare un elemento di formato appropriato, probabilmente PRIuPTR (dice, lavorando da una memoria instabile). –
litb, puoi spiegarmi cosa significa "dereferencing ti dà l'array" significa? È di nuovo puntatore alla matrice? o è l'indirizzo del primo elemento? – chappar
Ti dà lo stesso del solo nominare "var": L'array :) Quindi, 'sizeof (* ptr) == 10 * sizeof (int)', and '& * ptr == int (*) [ 10] ' –