delorie.com/archives/browse.cgi | search |
Message-ID: | <3941DA42.1DEE7B3E@cam.org> |
From: | Uriel Weizmann <uw1 AT cam DOT org> |
X-Mailer: | Mozilla 4.7 [en] (Win98; I) |
X-Accept-Language: | en |
MIME-Version: | 1.0 |
Newsgroups: | comp.os.msdos.djgpp |
Subject: | error flaging I can't reason with.. |
X-Forwarded: | by - (CAM) |
Lines: | 59 |
Date: | Fri, 09 Jun 2000 23:03:46 -0700 |
NNTP-Posting-Host: | 198.168.100.7 |
X-Complaints-To: | abuse AT videotron DOT net |
X-Trace: | wagner.videotron.net 960605784 198.168.100.7 (Fri, 09 Jun 2000 22:56:24 EDT) |
NNTP-Posting-Date: | Fri, 09 Jun 2000 22:56:24 EDT |
To: | djgpp AT delorie DOT com |
DJ-Gateway: | from newsgroup comp.os.msdos.djgpp |
Reply-To: | djgpp AT delorie DOT com |
The present is a c++ source program containing two lines commented respectively CASE1 and CASE2. Until this moment I can't find an explanation why CASE1 does not work. I thing that POINTR1 and ARRAY1 are exactly the same type variables with the same data. The puzzle even grows by the fact that if we eliminate the & from the parameter ARRAY in the prototype of FILLARRAY (changing ARRAY from POINTER REFERENCE to the older style POINTER TO INTEGER, CASE1 works fine. Thank you for your help Uri. #include <iostream> // #include <iomanip> // #include <stdio.h> void fillarray (int* &array) { for (int i=0; i < 10; i++) array[i] = (2 * i); } int main() { int array1[10]; int* pointr1= array1; /* at this point array1 and pointr1 are the "same" and should be completely interchageable */ /*******************************************************************/ // fillarray (array1); // CASE 1: compiler flags error/* fillarray (pointr1); // CASE 2: no errors as well as does the job /********************************************************************/ for (int i=0; i < 10; i++) cout << " " << (array1[i])<< endl; return(0); }
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |