Go4Expert

Go4Expert (http://www.go4expert.com/)
-   C (http://www.go4expert.com/forums/c/)
-   -   Memory corruption? (http://www.go4expert.com/forums/memory-corruption-t27155/)

priyatendulkar 15Nov2011 14:32

Memory corruption?
 
Hi,

Consider ,the following code

unsigned int num =10;
unsigned int * ptr = #

however,When i look into ptr ,the address stored in "ptr" IS NOT EQUAL to the ADDRESS of num..

I know this seems to be strange,but this is what I have obsreved..
Is this any kind of memory corruption or some known issue wich I may not be aware of?

Chong 16Nov2011 15:08

Re: Memory corruption?
 
Hi
You have got it wrong. The following program below should show it.
++++++++++++++++++++++++++++++++++++++++++++++
Code:

#include<stdio.h>
#include<conio.h>

main(){
        unsigned int  num =100;
        unsigned int *ptr=&num;

        printf("%d\n",num);
       
        //if (ptr!=&num){
        //        printf("Something is wrong");
        //}
        printf("&num:%d\n",&num);
        printf("ptr:%d\n",ptr);
        getchar();
}

++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++

poornaMoksha 16Nov2011 16:51

Re: Memory corruption?
 
Quote:

Originally Posted by priyatendulkar (Post 89226)
Hi,

Consider ,the following code

unsigned int num =10;
unsigned int * ptr = &num;

however,When i look into ptr ,the address stored in "ptr" IS NOT EQUAL to the ADDRESS of num..

I know this seems to be strange,but this is what I have obsreved..
Is this any kind of memory corruption or some known issue wich I may not be aware of?

Can you please share your code??

xpi0t0s 16Nov2011 22:11

Re: Memory corruption?
 
Are you looking at (a) the address of ptr, (b) ptr itself, or (c) what ptr is pointing at? If (b) then it should be exactly equal and if it isn't, your compiler is critically broken and you need a new one. But given the question you are asking, I suspect you're a beginner and the difference is actually down to a or c.

priyatendulkar 17Nov2011 11:43

Re: Memory corruption?
 
hi,

i know this sounds strange..
but I am looking at

b) ptr itself...

poornaMoksha 17Nov2011 11:45

Re: Memory corruption?
 
Can you please share your code? If we can have a look at your code, we would be able to understand your problem better.

xpi0t0s 17Nov2011 13:33

Re: Memory corruption?
 
You'll have to share your code. Also let us know what version of what compiler, and what version of what operating system, you're using. This code proves ptr should equal &num:
Code:

void test44()
{
        unsigned int num=10;
        unsigned int *ptr=&num;
        printf("%d %d %x %x\n",num,*ptr,&num,ptr);
}

Output (Visual C++ 2010):
10 10 1af79c 1af79c

So upload a short demo like the one here that shows the problem and include the output showing the different values of &num and ptr. Because ptr should be exactly equal to &num, and if it isn't then as I said before, either your compiler is terminally broken and you should never use it again, or you are looking at the wrong thing.

>>"When i look into ptr"
How exactly? Are you using a debugger?


All times are GMT +5.5. The time now is 03:48.