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?

Named what can derived class add?, New data members  New member function...

New data members  New member functions  New constructors and destructor  New friends

Write the statements which are used to connect php, Write the statements wh...

Write the statements which are used to connect PHP with MySQL? Statements which can be used to connect PHP with MySQL is: $conn = mysql_connect('localhost'); echo $co

What is inheritance, What is inheritance? Class, the vehicle, which is ...

What is inheritance? Class, the vehicle, which is used to execute object-oriented concepts in C++, has given a new dimension to this idea of reusability. Many vendors now offer

How does a structure differ from an array, Question : (a) What is a str...

Question : (a) What is a structure? Provide a simple example of your own to illustrate this feature. (b) How does a structure differ from an array? (c) Describe a structu

Android - iphone mobile game, I am seeking a developer to create a mobile g...

I am seeking a developer to create a mobile game for me. I want an endless runner game with simple controls. The game needs to be a 3D game in a 2D view. The graphics and animation

How many non-letters are included in the string, Write a fully modular C pr...

Write a fully modular C program that reads in a string of a defined size from the keyboard and reports how many times each letter of the alphabet occurs within that string (ignorin

C program to string compression, C program to string compression: Writ...

C program to string compression: Write a program to define a sting and all operations on string. void main()                                 {

Online Tutor Available, I am an online tutor who can teach computer science...

I am an online tutor who can teach computer science and programming language. Is there any requirement for this?

I want application to generate premium, Project Description: We want to ...

Project Description: We want to generate premium numbers for one of our application. What we need is: A program that generate 2, 3, 4, 5, 6, 7, 8 digits premium numbers

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