Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!uwm.edu!uakari.primate.wisc.edu!gem.mps.ohio-state.edu!tut.cis.ohio-state.edu!ucbvax!UKANVAX.BITNET!MARKV From: MARKV@UKANVAX.BITNET ("MARK GOODERUM - UNIV. OF KANSAS ACS - MARKV@UKANVAX") Newsgroups: comp.lang.modula2 Subject: Re: Overloading Operators: Extension to Language Message-ID: Date: 6 Oct 89 00:35:00 GMT Sender: daemon@ucbvax.BERKELEY.EDU Reply-To: Modula2 List Organization: The Internet Lines: 32 Are you sure about dereferencing. What about this imaginary code fragment: MODULE FakeReturn; VAR FooPtr: POINTER TO StructuredData; PROCEDURE GetStructuredData(Some parameters):ADDRESS; (* Forgot to Import *) (* ADDRESS, oh well..*) BEGIN do some stuff... RETURN(SomeAddress); END GetStructuredData; BEGIN blah blah. FooPtr:=GetStructuredData(blahBlah); AReference:=FooPtr^.SomeElement; END FakeReturn; I know I didn't declare everything, but this is off the top of my head and you get the idea. Now I personally don't see what is wrong with Dynamic allocation, especially for large arrays, records, etc, since it keeps program file size down and speeds load times. In fact I have some programs that are ALL dynamic allocation or local variables since I occasionally need/want to write reeentrant code. Cordially, Mark Gooderum MARKV@UKANVAX