Article View: de.comp.lang.c++
Article #1445Re: void* - Felder
From: Watson
Date: Mon, 29 Jan 1996 10:17
Date: Mon, 29 Jan 1996 10:17
28 lines
1386 bytes
1386 bytes
Andrea Hermann wrote:
[...]
> int main()
> {
> void* feld;
> int typ;
>
> // typ = 1 fuer int, 2 fuer double,...
>
> switch( typ )
> {
> case 1: f = ( void* ) new int[n];
> for( int i = 0; i < n; i++ )
> ein >> (int)f[i];
f[i] ist aequivalent zu *(f+i).
*(f+i) bezeichnet die Adresse (char*)f+(i*sizeof(*f)).
Da aber der Ausdruck (*f) nicht gebildet werden kann
(dort ist ja nichts: void), ergibt dieser Ausdruck
einen Fehler. Die anderen haben ja schon auf das offen-
sichtliche hingewiesen (int *feld). Bleibt noch anzu-
merken, dass die Korrektur auch in der Expression erfolgen
kann:
ein >> (int)(((int*)f)[i]);
--
* Greetinx from Watson (sayegh@fokus.gmd.de)
http://www.fokus.gmd.de/ovma/employees/sayegh/entry.html
signal(SIGSEGV,SIG_IGN);
Technical Details
Message-ID:
<310C9EB4.427A@fokus.gmd.de>Path:
arc1-ca.pugleaf.net!stern.fokus.gmd.de!newsReferences:
<3109142F.41C67EA6@ipf.bau-verm.uni-karlsruhe.de>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!stern.fokus.gmd.de!news From: Watson <sayegh@fokus.gmd.de> Newsgroups: de.comp.lang.c++ Subject: Re: void* - Felder Date: Mon, 29 Jan 1996 11:17:24 +0100 Organization: GMD FOKUS - Research Institute for Open Communication Systems Message-ID: <310C9EB4.427A@fokus.gmd.de> References: <3109142F.41C67EA6@ipf.bau-verm.uni-karlsruhe.de> NNTP-Posting-Host: pollux.fokus.gmd.de Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-2 Content-Transfer-Encoding: 7bit X-Mailer: Mozilla 2.0b5 (X11; I; SunOS 5.4 sun4m)