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

  • Home
  • SEARCH
  • 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 825753
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 15, 20262026-05-15T03:18:25+00:00 2026-05-15T03:18:25+00:00

// the malloc style, which returns a pointer: struct Cat *newCat = malloc(sizeof(struct Cat));

  • 0
// the malloc style, which returns a pointer:
struct Cat *newCat = malloc(sizeof(struct Cat));

// no malloc...but isn't it actually the same thing? uses memory as well, or not?
struct Cat cat = {520.0f, 680.0f, NULL};

Basically, I can get a initialized structure in these two ways. My guess is: It’s the same thing, but when I use malloc I also have to free() that. In the second case I don’t have to think about memory, because I don’t call malloc. Maybe.

When should I use the malloc style, and when the other?

  • 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-15T03:18:25+00:00Added an answer on May 15, 2026 at 3:18 am

    Firstly, the first variant does not initialize any structure. It simply allocates a block of raw memory sufficient to hold an object of struct Cat type. The memory remains uninitialized (contains garbage). The second variant does initialize each field in the structure to a specific value.

    Secondly, the first variant creates a nameless [and uninitialized] struct Cat object with allocated storage duration. The object will live until you explicitly deallocate it with free (or until the program ends). The second variant creates a named object cat with automatic storage duration – it will be deallocated automatically at the end of its declarative region (at the end of the containing block).

    Thirdly, in practice the two variants create objects in different kinds of memory. The first variant creates the object in the heap, while the second variant will typically create it on the stack.

    As for when to use one or another, there are quite a few answers here on SO to that question. This thread has some answers and plenty of links.

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

Sidebar

Ask A Question

Stats

  • Questions 442k
  • Answers 442k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team
    Editorial Team added an answer epsilon is a fine name if you're a mathematician -… May 15, 2026 at 5:59 pm
  • Editorial Team
    Editorial Team added an answer Try the following: 1 - Transparency Chart.ChartAreas["ChartArea1"].BackColor = Color.Transparent; 2… May 15, 2026 at 5:59 pm
  • Editorial Team
    Editorial Team added an answer Yes, use string dateSeparators = @"(\.|/|\\|-)+"; to catch multiple separators… May 15, 2026 at 5:59 pm

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

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.