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 7849409
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 2, 20262026-06-02T18:30:33+00:00 2026-06-02T18:30:33+00:00

A very basic conceptual doubt. Please don’t hate me for this silly question If

  • 0

A very basic conceptual doubt.
Please don’t hate me for this silly question

If we call a function like below from a thread in my main function

    char * function()
    {
            char message[10];
            .................
            ....do sth ......
            return message;
    }

In this case the internal buffer is automatic and vanishes as soon as the thread function returns.

But on doing this it works

    char * function()
    {
            char * message = (char*)malloc(10);
            .................
            ....do sth ......
            return message;
    }

I am confused with the lines below. How this solves the problem ?

Each thread will allocate a different array and store the address of that array in a stack variable. Every thread has its own stack so automatic data objects are different for each thread.

  • 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-06-02T18:30:35+00:00Added an answer on June 2, 2026 at 6:30 pm

    Each thread will allocate a different array and store the address of
    that array in a stack variable. Every thread has its own stack so
    automatic data objects are different for each thread.

    This comment does not relate to your second code snippet. what this comment means is that since each thread has it’s own stack; if multiple threads simultaneously call into the same function, they push local variables onto their own respective stacks, so no conflicts arise.

    Infact your second code snippet works because each time the function is called, you are dynamically allocating new heap memory and returning a pointer to it.

    NB: it’s usually nice to de-allocate the memory once you’re done with it 🙂

    Also: re your first code snippet & james’ & corbin’s comments above; this function, while somewhat doubtful is not invalid ~for example, see here

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

Sidebar

Related Questions

very basic question, but is there any ToArray-like function for c# linked lists that
A very basic question.. but I always do the bad implementation of this. I
Its very basic and silly question.... Is PHP a web Technology or a scripting
This is probably a very basic question, but I could not get my way
This might be a very basic question, but I'm getting a bit confused. I'm
This is a very basic MySQL question but I could not find an answer.
Very basic doubt: If I place a breakpoint inside a function (in DEBUG mode
A very basic question, when I have something like: TTStyledText * text = [TTStyledText
I have a very basic question. I would like to know if here is
This could be a very basic question, but hopefully someone will be able to

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.