473,387 Members | 1,504 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,387 software developers and data experts.

Can anybody tell me the reason

can anybody tell me the reason why following code is not working?
int *funct()
{
int p=10;
return &p;
}
int *ptr;
funct() = ptr; //------->Giving Compile time error
(LValue)


can anybody plz tell me the reason of this.

Jul 4 '06 #1
12 1492
Ashu wrote:
int *funct()
{
int p=10;
return &p;
}
First do not return address of local variable. This is not a compile
error but the effect is undefined and it may lead to

exception. Compiler gives a warning on this statement.
int *ptr;
funct() = ptr; //------->Giving Compile time error
(LValue)

can anybody plz tell me the reason of this.
it should be like this..

ptr = funct();

we should assign a value to left hand side variable (even in general
math).

-- Murali Krishna.

Jul 4 '06 #2

"Ashu" <as***********@gmail.comwrote in message
news:11**********************@j8g2000cwa.googlegro ups.com...
can anybody tell me the reason why following code is not working?
int *funct()
{
int p=10;
return &p;
}
int *ptr;
funct() = ptr; //------->Giving Compile time error
func() is a rhv (Right hand value).
ptr is a lhv (Left hand value/variable).
In C and C++ you put on the left the thing you want to get changed (the
left hand value).

ptr = func();
means, Load into ptr the value of func().

func() = ptr;
does not work because you can not load a function with a value, you can only
pass them values (well, in some cases you can in c++, but that's a different
story).
(LValue)


can anybody plz tell me the reason of this.

Jul 4 '06 #3
Geo

Ashu wrote:
can anybody tell me the reason why following code is not working?
int *funct()
{
int p=10;
return &p;
}
int *ptr;
funct() = ptr; //------->Giving Compile time error
(LValue)


can anybody plz tell me the reason of this.
Looks like you haven't bothered to read even the most basic C++ book
!!!!

Jul 4 '06 #4

Geo wrote:
Ashu wrote:
can anybody tell me the reason why following code is not working?
int *funct()
{
int p=10;
return &p;
}
int *ptr;
funct() = ptr; //------->Giving Compile time error
(LValue)


can anybody plz tell me the reason of this.

Looks like you haven't bothered to read even the most basic C++ book
!!!!



Boss I think u need to study some book nd for kind information of u
all, u can assign like this

func() = ptr
there is no problem in that if ptr is reference to some int and func()
also returning some reference but the problem is coming in case of
pointers only and i want to know why.

and please please u all who are saying that this is wrong or we do it
other way in maths also , study some good books about LValue and then u
will know that this works and how exactly C++ works.
nyways thanks for ur replies

Jul 5 '06 #5
Ashu wrote:
>
Boss I think u need to study some book nd for kind information of u
all, u can assign like this

func() = ptr
there is no problem in that if ptr is reference to some int and func()
also returning some reference but the problem is coming in case of
pointers only and i want to know why.

and please please u all who are saying that this is wrong or we do it
other way in maths also , study some good books about LValue and then u
will know that this works and how exactly C++ works.
nyways thanks for ur replies
Can we have that again in something approaching English?

--
Ian Collins.
Jul 5 '06 #6
"Ashu" wrote:
int *funct()
{
int p=10;
return &p;
}
You're trying to return the address of a local. That won't
work, because the local ceases to exist when you exit funct.
int *ptr;
You failed to initializ ptr, so you don't know where it's
pointing, nor do you know what it's pointing at.
funct() = ptr; //------->Giving Compile time error
There's 3 different errors there:
1. Uninitialized pointer
2. Unknown target
3. Assigning to an rvalue

If you're trying to get one function to alter a variable in
another, that can be done, but you'd have to declare p as "static"
and return a reference, like so:

#include <iostream>
int& funct()
{
static int p = 10;
std::cout << p << std::endl;
return p;
}

int main()
{
int x = 17;
funct() = x; // prints "10", then assigns 17 to "p" in "funct"
funct(); // prints "17"
return 0;
}
--
Cheers,
Robbie Hatley
Tustin, CA, USA
lonewolfintj at pacbell dot net
(put "[usenet]" in subject to bypass spam filter)
http://home.pacbell.net/earnur/
Jul 5 '06 #7
Geo

Ashu wrote:
Geo wrote:
Ashu wrote:
can anybody tell me the reason why following code is not working?
>
>
int *funct()
{
int p=10;
return &p;
}
>
>
int *ptr;
funct() = ptr; //------->Giving Compile time error
(LValue)
>
>
>
>
can anybody plz tell me the reason of this.
Looks like you haven't bothered to read even the most basic C++ book
!!!!




Boss I think u need to study some book nd for kind information of u
all, u can assign like this

func() = ptr
there is no problem in that if ptr is reference to some int and func()
also returning some reference but the problem is coming in case of
pointers only and i want to know why.

and please please u all who are saying that this is wrong or we do it
other way in maths also , study some good books about LValue and then u
will know that this works and how exactly C++ works.
nyways thanks for ur replies
Besides the fact that you code is completely broken, the fact that it
doesn't even compile suggests that it isn't in fact "how exactly C++
works".

Jul 5 '06 #8
Ashu wrote:
Boss I think u need to study some book nd for kind information of u
all, u can assign like this

func() = ptr

there is no problem in that if ptr is reference to some int and func()
also returning some reference but the problem is coming in case of
pointers only and i want to know why.

and please please u all who are saying that this is wrong or we do it
other way in maths also , study some good books about LValue and then u
will know that this works and how exactly C++ works.
nyways thanks for ur replies.
Hi Ashu,

I think you are from India (me too).
My friend, don't just start an argument. People here know more than
you and me.
I have seen people from all over the world answering to complex
questions.
Most of the time I try to analyze what they write.

If you or me really know how C++ works, we wouldn't have come here.
And this is your second post..
Don't be such emotional. C++ is just one more language to learn.

and in math, I never did in that way.

-- Murali Krishna

Jul 5 '06 #9

Murali Krishna wrote:
Ashu wrote:
Boss I think u need to study some book nd for kind information of u
all, u can assign like this

func() = ptr

there is no problem in that if ptr is reference to some int and func()
also returning some reference but the problem is coming in case of
pointers only and i want to know why.

and please please u all who are saying that this is wrong or we do it
other way in maths also , study some good books about LValue and then u
will know that this works and how exactly C++ works.
nyways thanks for ur replies.

Hi Ashu,

I think you are from India (me too).
My friend, don't just start an argument. People here know more than
you and me.
I have seen people from all over the world answering to complex
questions.
Most of the time I try to analyze what they write.

If you or me really know how C++ works, we wouldn't have come here.
And this is your second post..
Don't be such emotional. C++ is just one more language to learn.

and in math, I never did in that way.

-- Murali Krishna

Hi Murali

Thanks buddy for ur reply and I am sorry to all for my remarks.

Actually you are right we all are like small fish in this sea of C++
which is too deep to master fully........

nyways thanks again for the replies, hope to put more such studid
queries soon buddies...

bye

Jul 5 '06 #10
Hi Murali
>
Thanks buddy for ur reply and I am sorry to all for my remarks.
a happy and sentimental ending in Indian cinema way..
Actually you are right we all are like small fish in this sea of C++
which is too deep to master fully........
not a sea. Faculties tell them in that way.. that Java is an ocean,
C++ is vast.

I can't learn some thing if it is like an ocean.

what does buddies mean? I really dont know.

-- Murali Krishna

Jul 5 '06 #11
Ashu schrieb:
Geo wrote:
>Ashu wrote:
>>can anybody tell me the reason why following code is not working?
int *funct()
{
int p=10;
return &p;
}
int *ptr;
funct() = ptr; //------->Giving Compile time error
(LValue)
[...]
>

Boss I think u need to study some book nd for kind information of u
all, u can assign like this

func() = ptr
If func() returns an Lvalue, you can do that.

However, a pointer by itself is an rvalue, just like an int:

int getInt() { return ... }
int* getPointer() { return ... }

int i;

getInt() = 10; // won't work
getPointer() = &i; // won't work

But a pointer can be used to form an lvalue. By dereferencing the
pointer, you get an lvalue for the pointee:

*getPointer() = 10; // works (or better: compiles)

But!! the function above is dangerous:
>>int *funct()
{
int p=10;
return &p;
}
This will return a pointer to a local variable, which lifetime ends by
leaving the function. If you dereference the pointer, you invoke
undefined behaviour.

You can return a pointer to a static variable, which is often used for
singletons (but I would return a reference):

class Singleton;

Singleton* getSingleton()
{
static Singleton instance;
return &instance;
}

--
Thomas
Jul 5 '06 #12
"Murali Krishna" <pm*********@gmail.comwrote in message
news:11*********************@a14g2000cwb.googlegro ups.com...
>Hi Murali

Thanks buddy for ur reply and I am sorry to all for my remarks.

a happy and sentimental ending in Indian cinema way..
>Actually you are right we all are like small fish in this sea of C++
which is too deep to master fully........

not a sea. Faculties tell them in that way.. that Java is an ocean,
C++ is vast.

I can't learn some thing if it is like an ocean.

what does buddies mean? I really dont know.

-- Murali Krishna
"Buddy" is a variation on "chum", "mate", "pal", etc. They all mean
something like "friend".

HTH :)
Stu
Jul 5 '06 #13

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

303
by: mike420 | last post by:
In the context of LATEX, some Pythonista asked what the big successes of Lisp were. I think there were at least three *big* successes. a. orbitz.com web site uses Lisp for algorithms, etc. b....
9
by: andrew | last post by:
Hi, I posted this message recently, but received no response, so I figured I'd try again. I can't find anybody who can tell me what's going on here. I'm having a problem with fieldsets in IE...
29
by: Roy Gourgi | last post by:
Hi, I am new to C#. I have the same time scheduling program written in C++ and it is 5 times faster than my version in C#. Why is it so slow as I thought that C# was only a little slower than...
1
by: Allen Maki | last post by:
/* I am trying to practice multidimensional array in a managed class using dynamical allocation. If I tried to compile the following codes, I would get the under mentioned c2440 error...
1
by: dineshchand | last post by:
CAn anybody tell me about nmake options and how can create custom nmake options for own needs ??
5
by: Mufasa | last post by:
Does anybody have a slick way to tell if people are on the system. I have a login so I can tell if a user is authenticated. What I've done now is make a dataset that I store in the application...
6
by: raylopez99 | last post by:
Anybody use Strong Name Signing? I think this is used by default for Resource files, which is one reason perhaps I can't get my resource files to work (somehow the public key is messed up, perhaps...
2
by: maifs | last post by:
hi..... can anybody tell me that how can i save my all application's work. mean that how can i save the images,circles,rectangle,lines or etl together.. if somebody knows it then plz explain me...
1
by: tarunsingh19 | last post by:
pls anybody tell me wether oracle 8i can be installed in windows xp sevice pack 2?or will it work in XP2, if yes then where we get this software free download file?
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.