Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6634157
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 25, 20262026-05-25T22:53:49+00:00 2026-05-25T22:53:49+00:00

This may be an older query but I could not find any satisfactory answer

  • 0

This may be an older query but I could not find any satisfactory answer so far.
To check the memory map of a file I wrote a small hello program.

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
        printf("Hello\n");
        return 0;
}

Now after compilation, when I use command size on its object file I get:

# size hello
   text    data     bss     dec     hex filename
   1133     492      16    1641     669 hello

I checked the size for other files too. I always get bss as 16. Is bss fixed? Is this included in data or it is out of it. I mean is this 16 is included in 492 or not. As far as I understand, bss is uninitialized data segment.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-25T22:53:49+00:00Added an answer on May 25, 2026 at 10:53 pm

    The size of the BSS section varies between programs. It describes the amount of data that is initialized with ‘all bytes zero’. The zeroes are not actually stored in the object file, but the size of the BSS section is stored.

    The data section contains the initial values of all data structures that are not initialized to ‘all bytes zero’; it too varies between programs. It does not include the space included in the BSS section.


    You’d get a bigger BSS section with a program like this:

    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    
    enum { A_SIZE = 100 };
    static int a[A_SIZE];
    
    int main(void)
    {
        srand(time(0));
        for (int i = 0; i < A_SIZE; i++)
            a[i] = i;
        for (int i = A_SIZE; i > 0; i--)
        {
            int j = rand() % i;  // Not good random number generation!
            int t = a[j];
            a[j] = a[i-1];
            a[i-1] = t;
        }
        for (int i = 0; i < A_SIZE; i++)
            printf("%d\n", a[i]);
        return 0;
    }
    

    The code shuffles the numbers from 0 to 99, with some bias in the random number generation (so it isn’t a perfect shuffle, but that really isn’t the point of the exercise — it is just non-trivial code that uses a static array, even though a local variable would be sufficient). When I run size (on Ubuntu 13.10), I get:

    text       data     bss     dec     hex filename
    1593        584     432    2609     a31 shuffle
    

    For comparison, on the ‘hello’ program in the question, I get:

    text       data     bss     dec     hex filename
    1200        560       8    1768     6e8 hello
    

    The main difference is that the array a occupies 400 bytes; the other 24 bytes of BSS belong to other code.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

This may seem like a simple question but i am getting an error when
This may be rather noobish but I'm gonna ask anyhow. I have a class
This may seem really silly to you, I admit, but when discussing the Model-View-ViewModel
This may be silly, but it's been nagging the back of my brain for
This may be something common and trivial, but I seem to be having trouble
This may seem like a stupid question, but what message do i send to
This may sound like a stupid question, perhaps it is. But I'm only trying
This may be a stupid question, as I'm not sure how MSBuild works with
This may seem simple, but somehow it isn't. I have a table of historical
Hi im a complete newbie and this may seem very simple to any experienced

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.