Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c++ > #4299

Re: Problem with array objects

From Ian Collins <ian-news@hotmail.com>
Newsgroups comp.lang.c++
Subject Re: Problem with array objects
Date 2011-04-24 14:10 +1200
Message-ID <91hf57F6cmU6@mid.individual.net> (permalink)
References (6 earlier) <%OFsp.42022$bT6.13973@newsfe05.ams2> <91guh2F6cmU1@mid.individual.net> <7WIsp.37183$2W5.2255@newsfe16.ams2> <91h5dpF6cmU3@mid.individual.net> <%RKsp.40408$5t2.24872@newsfe06.ams2>

Show all headers | View raw


On 04/24/11 01:16 PM, Paul wrote:
>
> "Ian Collins"<ian-news@hotmail.com>  wrote in message
> news:91h5dpF6cmU3@mid.individual.net...
>> On 04/24/11 11:04 AM, Paul wrote:
>>>>>>>> A pointer to an array of 4 ints, when dereferenced, returns an array
>>>>>>>> of 4 ints.  Look at the output of running the following program.
>>>>>>>>
>>>>>>>>     #include<iostream>
>>>>>>>>     #include<typeinfo>
>>>>>>>>
>>>>>>>>     int main() {
>>>>>>>>       int a1i[4], (*pa1i)[4] =&a1i;
>>>>>>>>
>>>>>>>>       std::cout<<"typeid(  a1i)="<<typeid(a1i).name()<<std::endl;
>>>>>>>>       std::cout<<"typeid(*pa1i)="<<typeid(*pa1i).name()<<std::endl;
>>>>>>>>     }
>>>>>>>>
>>>>>>> You are dereferencing an array-type , not an array.
>>>>>>> For example:
>>>>>>>
>>>>>>> int arr[40] ={0};
>>>>>>>     int* parr = arr;
>>>>>>>     int (*pparr)[40] =&arr;
>>>>>>>
>>>>>>>     std::cout<<    "address of arr[0]:\t"<<    &arr[0]<<std::endl;
>>>>>>>     std::cout<<    "value of *parr:\t\t"<<    *parr<<std::endl;
>>>>>>>     std::cout<<    "value of *pparr\t\t"<<    *pparr<<std::endl;
>>>>>>>
>>>>>>> Dereferencing pparr does not access the array it accesses a temporary
>>>>>>> pointer.
>>>>>>> The pointer pparr does not reference the array, it references an
>>>>>>> array-type
>>>>>>> object.
>>>>>>
>>>>>> Dereferencing pparr accesses an array in the same sense that using
>>>>>> the name arr accesses an array.
>>>>
>>>>> No it doesn't
>>>>
>>> What  I wrote was:
>>> No it doesn't
>>> *arr =1; /*Accesses the array*/
>>> *pparr=1; /*Cannot do this*/
>>>
>>> There is no need to snip something so short. Obviously you are attempting
>>> to
>>> change the context of my post from that of  a reasonable debate into a
>>> blunt
>>> non explanatory argument.
>>
>> I was replying to text above, not the example, which had no relevance to
>> the text.
>>
>> Saying "*pparr=1; /*Cannot do this*/" is no different form writing
>>
>> struct X { int n; };
>>
>>    X x;
>>    X* px =&x;
>>    *px = 1;
>>
> Saying "*pparr=1; /*Cannot do this*/". is completely different from writing
> the above code.
> pparr's type is not a pointer to an X. It's type is pointer to array of
> ints.

Exactly.

>>>>
>>>> try adding
>>>>
>>>>     (*pparr)[0] = 42;
>>>>     std::cout<<   "value of  arr[0]\t\t"<<   arr[0]<<std::endl;
>>>>     arr[10] = 1234;
>>>>     std::cout<<   "value of  (*pparr)[0]\t\t"<<   (*pparr)[10]<<std::endl;
>>>>
>>> This code only confirms that *arr, is not the same as *pparr, in any
>>> sense.
>>> Which is exactly what I said.
>>
>> Did anyone dispute that?  Remember you disputed "Dereferencing pparr
>> accesses an array in the same sense that using the name arr accesses an
>> array".

> dereferencing pparr does not access the array , it..*drumroll* dereferences
> pparr.

Neither does arr.  Remember the origin claim you disputed? 
"Dereferencing pparr accesses an array in the same sense that using the 
name arr accesses an array".

>> So how does "(*pparr)[0] = 42;" differ from "arr[0] = 42;"?
>>
> If you can't see that they differ in levels of indirection, then you do not
> understand the code.

Quite.  Remember the words "Dereferencing pparr'?

>> Does (*pparr) not dereference pparr?
>>
>>> As I said dereferencing pparr doesn't access the arrray it accesses an
>>> array-type object.
>>> As can be shown:
>>> std::cout<<   *p;
>>> std::cout<<   typeid(*p).name();
>>
>> Try adding
>>
>> std::cout<<  (typeid(arr) == typeid(*pparr))<<  std::endl;
>
> This is just a pointless comment that in no way suggests the *pparr access
> the array.
> This simply shows that *pparr has the same type as arr. I have already
> stated that *pparr yields an array-type object.

So dereferencing pparr allows you to access the array in the same manner 
as arr.  You have just disproved your own claim.

Well done.

-- 
Ian Collins

Back to comp.lang.c++ | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Re: Problem with array objects "A. Bolmarcich" <aggedor@earl-grey.cloud9.net> - 2011-04-18 12:44 -0500
  Re: Problem with array objects "Paul" <pchristor@yahoo.co.uk> - 2011-04-18 21:35 +0100
    Re: Problem with array objects "A. Bolmarcich" <aggedor@earl-grey.cloud9.net> - 2011-04-19 13:46 -0500
      Re: Problem with array objects "Paul" <pchristor@yahoo.co.uk> - 2011-04-20 17:29 +0100
        Re: Problem with array objects "A. Bolmarcich" <aggedor@earl-grey.cloud9.net> - 2011-04-23 12:59 -0500
          Re: Problem with array objects "Paul" <pchristor@yahoo.co.uk> - 2011-04-23 20:31 +0100
            Re: Problem with array objects Ian Collins <ian-news@hotmail.com> - 2011-04-24 09:26 +1200
              Re: Problem with array objects "Paul" <pchristor@yahoo.co.uk> - 2011-04-24 00:04 +0100
                Re: Problem with array objects Ian Collins <ian-news@hotmail.com> - 2011-04-24 11:24 +1200
                Re: Problem with array objects "Paul" <pchristor@yahoo.co.uk> - 2011-04-24 02:16 +0100
                Re: Problem with array objects Ian Collins <ian-news@hotmail.com> - 2011-04-24 14:10 +1200
                Re: Problem with array objects "Paul" <pchristor@yahoo.co.uk> - 2011-04-24 04:37 +0100
                Re: Problem with array objects Ian Collins <ian-news@hotmail.com> - 2011-04-24 16:11 +1200
                Re: Problem with array objects "Paul" <pchristor@yahoo.co.uk> - 2011-04-24 13:31 +0100
                Re: Problem with array objects Peter Remmers <p.remmers@expires-2011-04-30.arcornews.de> - 2011-04-24 17:57 +0200
                Re: Problem with array objects "Paul" <pchristor@yahoo.co.uk> - 2011-04-24 17:39 +0100
                Re: Problem with array objects Ian Collins <ian-news@hotmail.com> - 2011-04-25 10:19 +1200
                Re: Problem with array objects Ian Collins <ian-news@hotmail.com> - 2011-04-25 10:12 +1200
                Re: Problem with array objects "Paul" <pchristor@yahoo.co.uk> - 2011-04-25 00:46 +0100
                Re: Problem with array objects Ian Collins <ian-news@hotmail.com> - 2011-04-25 11:59 +1200
                Re: Problem with array objects "Alf P. Steinbach /Usenet" <alf.p.steinbach+usenet@gmail.com> - 2011-04-25 05:01 +0200
                Re: Problem with array objects Ian Collins <ian-news@hotmail.com> - 2011-04-25 14:56 +1200
                Re: Problem with array objects "Paul" <pchristor@yahoo.co.uk> - 2011-04-25 10:57 +0100
            Re: Problem with array objects "A. Bolmarcich" <aggedor@earl-grey.cloud9.net> - 2011-04-26 12:36 -0500
              Re: Problem with array objects "Paul" <pchristor@yahoo.co.uk> - 2011-04-26 22:42 +0100
                Re: Problem with array objects "A. Bolmarcich" <aggedor@earl-grey.cloud9.net> - 2011-04-27 12:53 -0500
                Re: Problem with array objects Leigh Johnston <leigh@i42.co.uk> - 2011-04-27 19:06 +0100
                Re: Problem with array objects "Paul" <pchristor@yahoo.co.uk> - 2011-04-27 20:09 +0100
                Re: Problem with array objects "A. Bolmarcich" <aggedor@earl-grey.cloud9.net> - 2011-04-29 12:57 -0500
                Re: Problem with array objects Leigh Johnston <leigh@i42.co.uk> - 2011-04-29 19:10 +0100
                Re: Problem with array objects "Paul" <pchristor@yahoo.co.uk> - 2011-04-29 19:56 +0100
                Re: Problem with array objects "A. Bolmarcich" <aggedor@earl-grey.cloud9.net> - 2011-05-02 13:20 -0500
                Re: Problem with array objects "Paul" <pchristor@yahoo.co.uk> - 2011-05-02 22:43 +0100
                Re: Problem with array objects "A. Bolmarcich" <aggedor@earl-grey.cloud9.net> - 2011-05-05 14:13 -0500
                Re: Problem with array objects "Paul" <pchristor@yahoo.co.uk> - 2011-05-05 22:21 +0100
                Re: Problem with array objects Ian Collins <ian-news@hotmail.com> - 2011-05-06 10:49 +1200
                Re: Problem with array objects "Paul" <pchristor@yahoo.co.uk> - 2011-05-06 12:29 +0100
                Re: Problem with array objects "A. Bolmarcich" <aggedor@earl-grey.cloud9.net> - 2011-05-07 11:34 -0500
                Re: Problem with array objects "Paul" <pchristor@yahoo.co.uk> - 2011-05-08 04:05 +0100

csiph-web