SORU
3 Kasım 2009, Salı


Boşluğun boyutu nedir?

Bu deyimi verimi ne olurdu?

void * p = (void*) malloc(sizeof(void));

< / ^ hr .

Edit: sorunun Bir uzantısı.

Eğer boyutu(geçersiz) GCC derleyici olarak 1 verir, sonra bellek 1 byte ayrılır ve işaretçi p bayt gösteriyor ve p 0x2346 artan istiyorsunuz? 0x2345 p olduğunu varsayalım. P *p hakkında konuşmak istemiyorum.

CEVAP
3 Kasım 2009, Salı


Türü void boyutu var; bu derleme bir hata olurdu. Aynı nedenle gibi bir şey yapamazsın:

void n;

EDİT. Benim için sürpriz oldu, ne 7* *aslındayokGNU C: derleme

$ echo 'int main() { printf("%d", sizeof(void)); }' | gcc -xc -w - && ./a.out 
1

Ancak, C değil:

$ echo 'int main() { printf("%d", sizeof(void)); }' | gcc -xc   -w - && ./a.out 
<stdin>: In function 'int main()':
<stdin>:1: error: invalid application of 'sizeof' to a void type
<stdin>:1: error: 'printf' was not declared in this scope

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Besnik Ibrahimi

    Besnik Ibrah

    27 Mart 2010
  • Kevin Bruckert

    Kevin Brucke

    30 Aralık 2006
  • NCIX Tech Tips

    NCIX Tech Ti

    2 Ocak 2007