-
March 22nd, 2013, 02:52 AM
#11
Re: Pseudopointers
don't say I don't accept anything because I didn't say I don't accept something,
that is just what you say.
the code doesn't need to be changed since it's working in a 32-bit system or at least for me,
since it doesn't involve another datatype than INT, and is not the point of this topic at all.
so if you say that it won't work in x64 that is offtopic, because you just can make
some minnor changes and get that to work for you. so why you get offtopic saying
this won't work on x64?
what I wanted to point out is the use of typecasting in basic variables so they work
as pointer variables.
I made no assumption at all.
I understand that the 10 variables are not trusted to be stored contiguously,
but remember, I relied on an "implementation detail", so as you see there was no
assumption, but a pure fact. The fact is, it works for me indeed so I can show my point,
which has nothing to do with x32 or x64 systems, data storage, and so ...
If this code doesn't work for you, still you can get the point of the topic by
reading the source code. If you want more, you can make it work for you with just
some changes.
point: "typecasting in basic variables so they work as pointer variables".
why you keep telling other kind of things?
EDIT:
Originally Posted by Paul McKenzie
...
Look, I tell you what: Take this and post it on another board by filling in the number to add to &x so that "OK" gets printed, and come back here and give us a link to the discussion:
Code:
#include <iostream>
int main()
{
static int x;
static int y;
int *z = &x + 1; // What is the magic number to add?
if ( z == &y )
std::cout << " OK"; // how will we get here?
else
std::cout << "Not OK";
}
Regards,
Paul McKenzie
by saying this, you just shown me you have not the minimal idea of what is going on in my code, since you lack the static variables initialization value, and your pointer variable is not static either. so as you see you have failed big there.
Code:
#include<windows.h>//or just stdlib.h
#include<stdio.h>
#include <iostream>
int main(){
static int x=0;
static int y=0;
static int* z = &x + 1;
printf("%X\n",&x);
printf("%X\n",&y);
printf("%X\n",z);
system("pause");
if ( z == &y )
std::cout << " OK\n";
else
std::cout << "Not OK\n";
system("pause");
return 0;
}
anyways, I will took that as some kind of attempt of getting this thread to be a bit funnier
Last edited by eightyfive; March 22nd, 2013 at 03:25 AM.
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|