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?

Circular linked list assignment, need an expert programmer to finish coding...

need an expert programmer to finish coding the requirements from the assignment withen 4 hrs

Program to draw a circle - c program, Program to draw a circle: int ma...

Program to draw a circle: int main(void) {    /* request auto detection */    int gdriver = DETECT, gmode, errorcode;    int midx, midy;    int radius = 100;

What does it mean to declare a function as a static, (c) A static member fu...

(c) A static member function can access static member data only, static member functions and functions and data outside the class. A static member function may be called, even whil

C program to create a file student.dat, Program is to create a file student...

Program is to create a file student.dat: Program is to create a file student.dat which contains all name, roll_no,marks(5 sub) and percentage   class student    {

Define functions with arguments and no return values, Define Functions with...

Define Functions with arguments and no return values The calling function will read a data from the terminal and pass it on to called as function and this will work good as the

Write in a file - c program, Write in a file: void main() { int ...

Write in a file: void main() { int i,j,k,l,list[1000]; FILE *fp; char any[8];   cout cin >> any;   fp = fopen(any,"wb");     for(j=0;j     {

What is virtual class and friend class, Friend classes are used when two or...

Friend classes are used when two or more classes are designed to work together and require access to each other's execution in ways that the rest of the world shouldn't be permitte

Program to develope dating service to form couples, In this assignment, you...

In this assignment, you will develop a program named "match" to be used by a dating service to form couples. Given the number of gentlemen, the number of ladies, and a list of acce

Explain the #undef directive, The #undef Directive This directive undef...

The #undef Directive This directive undefines a previously explained macro. For, example the following will give an error since PI is undefined.                 #define PI 3

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