Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

1. Please answer a-d , there was a previous post with additional questions. Thank you in advance. Consider the following program and provide code and

1. Please answer a-d, there was a previous post with additional questions. Thank you in advance.

Consider the following program and provide code and explanations where asked in the code comment after running the program in your system. Note that there are 4 parts (in bold) that need to be addressed.

#include

#include

using namespace std;

class Header{

private:

char used;

int payloadsize;

char* data;

public:

Header (){

used = 0, payloadsize = -1, data = NULL;

}

Header (int ps, char initvalue = 0){

used = 0;

payloadsize = ps;

data = new char [payloadsize];

memset (data, initvalue, payloadsize);

}

int getsummation (){

int sum = 0;

for (int i=0; i

sum += data [i];

}

return sum;

}

};

int main (){

Header h1;

Header h2 (10);

Header* h3 = new Header (20);

cout << "Header type size " << sizeof (Header) << endl;

cout << "Header oject size " << sizeof (h1) << endl;

cout << "Header object h2 size "<< sizeof (h2) << endl;

cout << "Header object pointer size " << sizeof (h3) << endl;

// a. now allocate memory big enough to hold 10 instances of Header

// b. Put 10 instances of Header in the allocated memory block, one after another without overwriting

// The instances should have payload size 10, 20,..., 100 respectively

// and they should have initial values 1,2,...10 respectively

// c. now call getsummation() on each instance using a loop, output should be:

// 10, 40, 90, ...., 1000 respectively

Header* ptr = h3 + 100;

cout <<"Printing pointer h3: " << h3 << endl;

cout <<"Printing pointer ptr: " << ptr << endl;

// d. explain the output you see in the following

cout << "Difference " << (ptr - h3) << " objects" << endl;

cout << "Difference " << ((char*) ptr - (char *)h3) << " bytes" << endl;

}

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Microsoft Visual Basic 2005 For Windows Mobile Web Office And Database Applications Comprehensive

Authors: Gary B. Shelly, Thomas J. Cashman, Corinne Hoisington

1st Edition

0619254823, 978-0619254827

More Books

Students also viewed these Databases questions

Question

56.If then nd E(X) and V(X) by differentiating a. MX(t) b. RX(t)

Answered: 1 week ago