www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1997/05/14/01:26:06

Date: Wed, 14 May 1997 01:24:45 -0400 (EDT)
From: Michael Phelps <morphine AT hops DOT cs DOT jhu DOT edu>
To: Krystyna de Heras <krystyna DOT de DOT heras AT mailbox DOT swipnet DOT se>
cc: djgpp AT delorie DOT com
Subject: Re: HELP! Pointers and structs
In-Reply-To: <33734562.2756@mailbox.swipnet.se>
Message-ID: <Pine.GSO.3.95.970514012039.6752B-100000@hops.cs.jhu.edu>
MIME-Version: 1.0

On Tue, 13 May 1997, Krystyna de Heras wrote:

> Hi all!
> 
> I have been coding in C++ for soon four days and while I am porting some
> Pascal code I had this idea of optimizing things a little bit also.
> 
> The problem is this: Incrementing pointers in a structure.
> 
> In my thick C++ book it says.
> 
> type *variable=new type[n];
> variable[a]=2; <=> *(variable+a)=2;
> 
> So I began to think. Let's say we have this structure:
> 
> typedef struct clowntype
> {
>  unsigned long int amount_of_pies, balloons;
> } clowntype;
> 
> typedef struct cirkustype
> {
>  unsigned long int amount_of_clowns, ticket_cost;
>  clowntype *clowns;
> } cirkustype;
> 
> main bla bla
> 
> cirkustype *cirkus_max= new cirkustype;
> 
> ok here is something I don't know if it's legal
> but it compiles allright.
> 
> clowntype *leasing= new clowntype[5];
> cirkus_max->clowns=leasing; // Clowns Points at same as adress as
> leasing.
> 
> Now for the problem.
> leasing[10].amount_of_pies=12;
> THIS WON'T COMPILE
> cirkus_max->(*(clowns+10)).amount_of_pies=12;

That line doesn't make sense.  What you really want is:
	(cirkus_max->clowns)[10].amount_of_pies = 12;
         ^^^^^^^^^^^^^^^^^^
         This portion equals
         the pointer leasing,
         which is what you
         really want.
          

> THIs will compile
> cirkus_max->clowns=cirkus_max->clowns+10;
> cirkus_max->clowns->amount_of_pies=12;
> 
> 
> Is there a way of indexing clowns without changing its value?
> 



						---Michael Phelps
						   morphine AT cs DOT jhu DOT edu


                               CH3
                               |
                               N
                             / |
                     ______/   |
                    /      \   CH2
             _____/         \__|__      
           //     \\        /  |  \\     
         //        \\______/___CH2 \\  
          \        /       \       /
           \______/         \_____/
          / ------ \       /      \
        OH           \   /         OH
                       O
 
                   Morphine



- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019