From: "Martin Ambuhl" Newsgroups: comp.os.msdos.djgpp Subject: Re: GCC and pointers : QUESTION Date: Wed, 29 Jul 1998 15:31:25 -0400 Organization: Nocturnal Aviation Lines: 33 Message-ID: <6pnt77$nhs@news-central.tiac.net> References: <35bf1ff4 DOT 1246159 AT news DOT icm DOT edu DOT pl> NNTP-Posting-Host: p5.tc2.newyo.ny.tiac.com To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Precedence: bulk Inquisitor Nikodemus wrote in message <35bf1ff4 DOT 1246159 AT news DOT icm DOT edu DOT pl>... |Hey! | | |During writing a function I noticed that operations - such as addition |or substraction - on pointers of different types than char didn't |behave as I expected them to. Eg. adding 2 to the the pointer : | short *pointer_to_short ; |resulted in 4 byte offset,not 2 byte. Same for ints etc. |So the question is : is it really a fact,that gcc's pointer math |depends on type rather than raw bytes ? ============ It is really a fact that all legal C implementation do pointer arithmetic with regard to type. That is why pointer arithmetic on void * is undefined in standard C (gcc has a loophole here): there is no size associated with void. Since E1[E2] means the same thing as *(E1+(E2)), this in an inescapable fact of life in C. Your question is about C rather than about gcc. If you have more questions about C, the right newsgroup is news://comp.lang.c Martin Ambuhl (mambuhl AT tiac DOT net) /* Newsgroup posts also e-mailed */ | | |/greetz |Nikki