Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.c++ > #14462
| From | "Paul" <pchrist<nospam>or@yahoo.co.uk> |
|---|---|
| Newsgroups | comp.lang.c++ |
| Subject | Re: Pointer Problem |
| Date | 2012-02-23 21:08 +0000 |
| Organization | Netfront http://www.netfront.net/ |
| Message-ID | <ji69s3$1ppq$1@adenine.netfront.net> (permalink) |
| References | (6 earlier) <4f44c054$0$4357$7b1e8fa0@news.nbl.fi> <8f0e6934-e5bc-43ed-8696-a5758a16c2fc@w4g2000vbc.googlegroups.com> <4f46169d$0$4388$7b1e8fa0@news.nbl.fi> <ji62e5$1jge$1@adenine.netfront.net> <WN2dnaiGtOXUDdvSnZ2dnUVZ8tidnZ2d@giganews.com> |
"Leigh Johnston" <leigh@i42.co.uk> wrote in message
news:WN2dnaiGtOXUDdvSnZ2dnUVZ8tidnZ2d@giganews.com...
> On 23/02/2012 18:59, Paul <pchrist wrote:
>> "Juha Nieminen"<nospam@thanks.invalid> wrote in message
>> news:4f46169d$0$4388$7b1e8fa0@news.nbl.fi...
>>> Paul<pchristor@yahoo.co.uk> wrote:
>>>>> (Let your ranting begin.)
>>>> Ranting?
>>>
>>> Yes. Exactly like this:
>>>
>>>> What you're saying is like saying int* and int** point to different
>>>> types. Sure if you assert them at different levels of indirection they
>>>> will appear different but regarding types, ultimately they both point
>>>> to an int type object.
>>>>
>>>> If your argument would be to suggest that they point to different
>>>> types because int** points to an int* type and int* points to an int
>>>> type. I'd suggest that you are confusing the term "level of
>>>> indirection" with "type".
>>>
>>> You do understand that "int" and "int*" are different types, do you?
>>> They may even have difference sizes (eg. in most 64-bit systems they
>>> do).
>>>
>>> Likewise "int" and "int[10]" are different types. The former is an
>>> integral while the latter is an array of 10 integrals. (Again, they have
>>> different sizes: The former is sizeof(int) bytes big, while the latter
>>> is 10*sizeof(int) bytes big.)
>>>
>>> "int*" points to an "int", and "int(*)[10]" points to an array of 10
>>> ints.
>>> The difference becomes clear eg. when you increment those pointers (the
>>> former will change by the size of one int, while the latter will change
>>> by the the size of 10 ints), or take the size of what they are pointing
>>> at.
>>>
>>> There's no way of interpreting this that would allow you to say that
>>> "int*" and "int(*)[10]" are of the same type.
>>
>> Its not about "types" its about level of indirection, you can only obtain
>> another pointer if you dereference an int(*)[10].
>
> It is all about types silly.
>
>> For example:
>>
>> int anarray[10] ={1,2,3,4};
>> int(*ptr1)[10] =&anarray;
>> int* ptr2 = *ptr1; /* When dereferneced another pointer is obtained, not
>> an
>> array type object. */
>
> Not true; when dereferenced a reference to an array is returned as the
> following code illustrates:
>
> int main()
> {
> int anarray[10] ={1,2,3,4};
> int(*ptr1)[10] = &anarray;
> std::cout << (typeid(*ptr1) == typeid(int*) ? "is a pointer\n" : "is not a
> pointer\n");
> std::cout << (typeid(*ptr1) == typeid(int(&)[10]) ? "is a reference\n" :
> "is not a reference\n");
> }
>
> outputs:
> is not a pointer
> is a reference
>
A reference isn't a type either.
> or:
>
> struct other_type;
>
> int main()
> {
> int anarray[10] ={1,2,3,4};
> int(*ptr1)[10] = &anarray;
> other_type* ptr2 = *ptr1;
> }
>
> 1>c:\projects\foo\tu1.cpp(13) : error C2440: 'initializing' : cannot
> convert from 'int [10]' to 'other_type *'
^_^ And the above is supposed to prove what exactly?
>
> ergo 'ptr1' is a pointer to an array of 10 int and '*ptr1' is a reference
> to an array of 10 int.
>
The type/s pointed to is int, the pointer type reflects the level of
indirection and not the type. You cannot say this pointer will always point
to 10 ints.
int anotherarray[10][10] = {0};
ptr1 = anotherarray;
Now this pointer points to an array of 100 ints, not 10.
*ptr1 may indeed return a reference but this implicitly decays into a
pointer
--- Posted via news://freenews.netfront.net/ - Complaints to news@netfront.net ---
Back to comp.lang.c++ | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Pointer Problem bintom <binoythomas1108@gmail.com> - 2012-02-16 06:51 -0800
Re: Pointer Problem Juha Nieminen <nospam@thanks.invalid> - 2012-02-16 15:15 +0000
Re: Pointer Problem 88888 Dihedral <dihedral88888@googlemail.com> - 2012-02-16 07:17 -0800
Re: Pointer Problem Victor Bazarov <v.bazarov@comcast.invalid> - 2012-02-16 11:15 -0500
Re: Pointer Problem scott@slp53.sl.home (Scott Lurndal) - 2012-02-16 17:18 +0000
Re: Pointer Problem Victor Bazarov <v.bazarov@comcast.invalid> - 2012-02-16 13:46 -0500
Re: Pointer Problem Mike McCarty <mcmccarty@gmail.com> - 2012-02-16 12:41 -0800
Re: Pointer Problem scott@slp53.sl.home (Scott Lurndal) - 2012-02-16 20:45 +0000
Re: Pointer Problem Nick Keighley <nick_keighley_nospam@hotmail.com> - 2012-02-17 01:44 -0800
Re: Pointer Problem jt@toerring.de (Jens Thoms Toerring) - 2012-02-17 03:14 +0000
Re: Pointer Problem Juha Nieminen <nospam@thanks.invalid> - 2012-02-17 07:23 +0000
Re: Pointer Problem jt@toerring.de (Jens Thoms Toerring) - 2012-02-18 22:39 +0000
Re: Pointer Problem Peter Remmers <p.remmers@expires-2011-04-30.arcornews.de> - 2012-02-20 21:07 +0100
Re: Pointer Problem Paul <pchristor@yahoo.co.uk> - 2012-02-21 18:49 -0800
Re: Pointer Problem Paul <pchristor@yahoo.co.uk> - 2012-02-21 18:49 -0800
Re: Pointer Problem Juha Nieminen <nospam@thanks.invalid> - 2012-02-22 10:15 +0000
Re: Pointer Problem Paul <pchristor@yahoo.co.uk> - 2012-02-22 07:49 -0800
Re: Pointer Problem Leigh Johnston <leigh@i42.co.uk> - 2012-02-22 20:24 +0000
Re: Pointer Problem Juha Nieminen <nospam@thanks.invalid> - 2012-02-23 10:36 +0000
Re: Pointer Problem "Paul" <pchrist<nospam>or@yahoo.co.uk> - 2012-02-23 18:59 +0000
Re: Pointer Problem Leigh Johnston <leigh@i42.co.uk> - 2012-02-23 19:15 +0000
Re: Pointer Problem "Paul" <pchrist<nospam>or@yahoo.co.uk> - 2012-02-23 21:08 +0000
Re: Pointer Problem Leigh Johnston <leigh@i42.co.uk> - 2012-02-23 21:17 +0000
Re: Pointer Problem Leigh Johnston <leigh@i42.co.uk> - 2012-02-23 21:29 +0000
Re: Pointer Problem Joshua Maurice <joshuamaurice@gmail.com> - 2012-02-23 17:06 -0800
Re: Pointer Problem Paul <pchristor@yahoo.co.uk> - 2012-02-24 03:42 -0800
Re: Pointer Problem Leigh Johnston <leigh@i42.co.uk> - 2012-02-24 12:33 +0000
Re: Pointer Problem "Paul" <pchrist<nospam>or@yahoo.co.uk> - 2012-02-24 15:09 +0000
Re: Pointer Problem Jorgen Grahn <grahn+nntp@snipabacken.se> - 2012-02-23 20:53 +0000
Re: Pointer Problem Paul <pchristor@yahoo.co.uk> - 2012-02-24 04:11 -0800
Re: Pointer Problem Leigh Johnston <leigh@i42.co.uk> - 2012-02-24 12:36 +0000
Re: Pointer Problem Paul <pchristor@yahoo.co.uk> - 2012-02-24 06:07 -0800
Re: Pointer Problem Leigh Johnston <leigh@i42.co.uk> - 2012-02-24 14:11 +0000
Re: Pointer Problem "Paul" <pchrist<nospam>or@yahoo.co.uk> - 2012-02-24 15:49 +0000
Re: Pointer Problem Mike McCarty <mcmccarty@gmail.com> - 2012-02-24 08:50 -0800
Re: Pointer Problem "Paul" <pchrist<nospam>or@yahoo.co.uk> - 2012-02-24 18:47 +0000
Re: Pointer Problem Paul <pchristor@yahoo.co.uk> - 2012-02-24 13:44 -0800
Re: Pointer Problem Paul <pchristor@yahoo.co.uk> - 2012-02-26 12:41 -0800
Re: Pointer Problem Mike McCarty <mcmccarty@gmail.com> - 2012-02-26 21:30 -0800
Re: Pointer Problem Paul <pchristor@yahoo.co.uk> - 2012-02-27 06:07 -0800
Re: Pointer Problem Mike McCarty <mcmccarty@gmail.com> - 2012-02-27 07:25 -0800
Re: Pointer Problem Paul <pchristor@yahoo.co.uk> - 2012-02-27 08:17 -0800
Re: Pointer Problem Mike McCarty <mcmccarty@gmail.com> - 2012-02-27 08:51 -0800
Re: Pointer Problem Ian Collins <ian-news@hotmail.com> - 2012-02-28 07:18 +1300
Re: Pointer Problem Paul <pchristor@yahoo.co.uk> - 2012-02-27 11:32 -0800
Re: Pointer Problem Paul <pchristor@yahoo.co.uk> - 2012-02-27 11:32 -0800
Re: Pointer Problem Leigh Johnston <leigh@i42.co.uk> - 2012-02-27 19:17 +0000
Re: Pointer Problem Paul <pchristor@yahoo.co.uk> - 2012-02-27 11:49 -0800
Re: Pointer Problem Leigh Johnston <leigh@i42.co.uk> - 2012-02-27 20:04 +0000
Re: Pointer Problem Paul <pchristor@yahoo.co.uk> - 2012-02-27 12:55 -0800
Re: Pointer Problem Leigh Johnston <leigh@i42.co.uk> - 2012-02-27 21:15 +0000
Re: Pointer Problem Paul <pchristor@yahoo.co.uk> - 2012-02-27 14:26 -0800
Re: Pointer Problem Paul <pchristor@yahoo.co.uk> - 2012-02-27 11:21 -0800
Re: Pointer Problem SG <s.gesemann@gmail.com> - 2012-02-16 07:00 -0800
Re: Pointer Problem LR <lruss@superlink.net> - 2012-02-16 16:49 -0500
Re: Pointer Problem Juha Nieminen <nospam@thanks.invalid> - 2012-02-16 22:18 +0000
Re: Pointer Problem LR <lruss@superlink.net> - 2012-02-16 23:40 -0500
Re: Pointer Problem Juha Nieminen <nospam@thanks.invalid> - 2012-02-17 07:24 +0000
Re: Pointer Problem LR <lruss@superlink.net> - 2012-02-17 09:48 -0500
Re: Pointer Problem Juha Nieminen <nospam@thanks.invalid> - 2012-02-17 15:13 +0000
csiph-web