What happens if you write following code?, C/C++ Programming

Assignment Help:

What happens if you write following code?

string& foo()                                                                                                        

{

return "Hello World";

}

cout << foo() << endl;

A: 1. Will give an error as Hello World is created as unnamed character pointer to const. this is being assigned to non-const reference that is not allowed. Could not alter '"Hello World"' to 'std::string&'

2. const string& foo1()

{

return "Hello World";

}

It will give a warning .As you are returning a reference to temporary, which will die instantly when the expression is completed?

classsize.C:7: warning: returning reference into temporary output : Aborted. Segment fault.

3. Char *foo1()

{

return "Hello World";

}

Returning the address of character literal that is created on the static memory.

In C++, the compiler let the use of string literals to initialize character arrays. A string literal contain zero or more characters surrounded through double quotation marks ("). A string represents a sequence of characters that, taken mutually, form a null-terminated string. The compiler developed static storage space for the string, null-terminates it, & puts the address of this space into the char* variable. The sort of a literal string is an array of const chars.

char* szMyString = "Hello world.";

szMyString[3] = 'q'; // undefined, altering static buffer!!!

 

In the following instance, the compiler puts a null-character automatically at the end of the literal string of characters "Hello world". Then it creates a storage space for the resulting string - it is an array of const chars. Then it puts the initial address of this array into the szMyString variable. We will attempt to change this string (wherever it is stored) by accessing it through an index into szMyString. It is a Bad Thing; the standard does not say where the compiler puts literal strings. They can go anywhere, perhaps in some place in memory that you shouldn't be altering.

 


Related Discussions:- What happens if you write following code?

A palindrome is a string that reads the same from both the e, submitting so...

submitting solutions in C language should not use functions from / as these files do not exist in gcc

Need payment gateway integration expert, Need Payment Gateway Integration E...

Need Payment Gateway Integration Expert Project Description: I am seeking for expert payment gateway integration. You must have done or have experience with integrating me

Heating and thermodynamic, i want software to calculate heating or use ther...

i want software to calculate heating or use thermodynamic equation , pleas help me

Wap to print sum=1!+2!+3!+4!+....n!, WAP TO PRINT SUM=1!+2!+3!+4!+....N! ...

WAP TO PRINT SUM=1!+2!+3!+4!+....N! #include stdio.h> #include conio.h>   void main() {                    int n,i;                    float sum=0,fac

Networking program development, Networking program development. 1.ARP pr...

Networking program development. 1.ARP protocol. 2.Switching HUB. 3.wireshark. 4.winpcap library. 5.C++ & MFC. 6.LAN evironment through switch and HUB(static ARP t

Explain the working of strcpy function, Explain the Working of strcpy Funct...

Explain the Working of strcpy Function? strcpy() : This function is meant to use to copy one string to another. The strcpy function as well accepts two strings as arguments.

Explain syntax rules for writing constructor functions, Syntax rules for wr...

Syntax rules for writing constructor functions Its name must be similar as that of the class to which it belongs. It is declared with no return type (not even void). Ho

Help, what is c++ ?

what is c++ ?

Explain reusability, Reusability  Reusability means reusing code writte...

Reusability  Reusability means reusing code written earlier, may be from some earlier project or from the library. Reusing old code not only saves development time, but also sa

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd