This is the mail archive of the
cygwin@sourceware.cygnus.com
mailing list for the Cygwin project.
Re: problem in C++ pointer
- To: jay dot krell at cornell dot edu
- Subject: Re: problem in C++ pointer
- From: "swe sd" <ccwork at hotmail dot com>
- Date: Sun, 12 Mar 2000 15:52:31 GMT
- Cc: cygwin at sourceware dot cygnus dot com
First of all, thanks for you kindy answer ...
I have the last question. I rewrite the program as follow:
line 1: #include <iostream>
line 2: void main()
line 3: { const int size=10;
line 4: int A[size];
line 5: int *X=NULL, i;
line 6: for (i=0;i<size;i++) A[i]=i;
line 7: cout<<A[0]<<" "<<&A<<" "<<&A[0]<<endl;
line 8: X=A;
line 9: cout<<A[0]<<" "<<&A<<" "<<&A[0]<<endl
line 10: <<*X<<endl
line 11: <<*X+5<<endl
line 12: <<*X<<" "<<A[0]<<endl
line 13: <<5+X[0]<<endl
line 14: <<( X[0]==0 ? "X[0]=0" : "X[0]!=0")<<endl;
line 15: cout<<++X[0]<<endl; //the change here
line 16: }
and executing it gives output:
$./a.out
0 0x259fd7c 0x259fd7c
0 0x259fd7c 0x259fd7c
0
5
0 0
5
X[0]=0
1
Obviously, it gives the correct answer (line 7 = line 9). I
just wonder what is the different between the original code (using
a single "cout", see test.cc attached) and new code (use another
cout to print ++X[0], above).
Actually, I tried the original program many time on my PC
running Cygnus. To remove external factor, I close all other
program after a re-boot. But the result is still wrong (see last e-mail).
Then, to test my program is correct or not, I tried it on a
UNIX SVR with gcc compiler. Then the program works properly.
So, I just conclude there is some wrong with the cygwin, or
not as good as gcc. Thanks.
______________________________________________________
Get Your Private, Free Email at http://www.hotmail.com
test.cc
--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe@sourceware.cygnus.com