C++ Structures | Find output programs | Set 2

This section contains the C++ find output programs with their explanations on C++ Structures (set 2).
Submitted by Nidhi, on June 17, 2020

Program 1:

#include <iostream>
using namespace std;

int main()
{
    typedef struct
    {
        int A;
        char* STR;
    } S;

    S ob = { 10, "india" };

    S* ptr;
    ptr = &ob;

    cout << ptr->A << " " << ptr->STR[2];

    return 0;
}

Output:

10 d

Explanation:

Here, we created a local structure with two members A and STR that is defined in the main() function. and created the object that is ob, and a pointer ptr, assigned the address of ob to ptr.

cout <<ptr->A<<" "<<ptr->STR[2];

Here, we accessed elements using referential operator "->".

ptr->A will be "10" and ptr->STR[2] will "d", it will access the 2nd element of the string STR.

Program 2:

#include <iostream>
using namespace std;

typedef struct{
    int A;
    char* STR;
} S;

int main()
{
    S ob = { 10, "india" };

    cout << sizeof(ob);

    return 0;
}

Output:

In a 32-bit system: 8
In a 64-bit system: 16

Explanation:

Here, we created a structure with two members, one is an integer variable and another is a character pointer. We know that size of an integer is 4 bytes / 8 bytes and the size of any type of pointer is also 4 bytes / 8 bytes.

Program 3:

#include <iostream>
using namespace std;

typedef struct{
    int A;
    int B;
    char c1;
    char c2;
} S;

int main()
{
    cout << sizeof(S);

    return 0;
}

Output:

In a 32-bit system: 12
In a 64-bit system: 24

Explanation:

Here, A and B will allocate two blocks of 4 bytes / 8 bytes, and normally character variable takes 1-byte memory space but due to structure padding c1 and c2 will take 1-1 byte and block is padded by remaining 2 bytes / 6 bytes. And then no other variable can use the padded space.

1st block will store A, 2nd block will store B, and 3rd block will store c1, c2, and 2 bytes / 6 bytes space padding. 

Then the final size of the structure will be 12 / 24 bytes.






Comments and Discussions

Ad: Are you a blogger? Join our Blogging forum.





Languages: » C » C++ » C++ STL » Java » Data Structure » C#.Net » Android » Kotlin » SQL
Web Technologies: » PHP » Python » JavaScript » CSS » Ajax » Node.js » Web programming/HTML
Solved programs: » C » C++ » DS » Java » C#
Aptitude que. & ans.: » C » C++ » Java » DBMS
Interview que. & ans.: » C » Embedded C » Java » SEO » HR
CS Subjects: » CS Basics » O.S. » Networks » DBMS » Embedded Systems » Cloud Computing
» Machine learning » CS Organizations » Linux » DOS
More: » Articles » Puzzles » News/Updates


© https://www.includehelp.com some rights reserved.