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


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

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 11:24 +1200
Message-ID <91h5dpF6cmU3@mid.individual.net> (permalink)
References (4 earlier) <ZuTrp.20047$Vm5.2779@newsfe30.ams2> <slrnir64sj.pso.aggedor@earl-grey.cloud9.net> <%OFsp.42022$bT6.13973@newsfe05.ams2> <91guh2F6cmU1@mid.individual.net> <7WIsp.37183$2W5.2255@newsfe16.ams2>

Show all headers | View raw


On 04/24/11 11:04 AM, Paul wrote:
>
> "Ian Collins"<ian-news@hotmail.com>  wrote in message
> news:91guh2F6cmU1@mid.individual.net...
>> On 04/24/11 07:31 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;

>>
>> 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".

So how does "(*pparr)[0] = 42;" differ from "arr[0] = 42;"?

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;

> *p = 50; /*Wrong. cannot access the array*/

Obviously (assuming p above is pparr).  You have exactly the same 
situation as the struct example above.  But if you dereference the 
pointer, you can use the result as if it were the original array, as my 
additions and running the above showed you.

> There are two ways this array-type object can be used to access the array
> (i) Convert to a pointer.
> (ii) Convert to a reference.

I think the examples above disprove that.

-- 
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

csiph-web