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

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 3, 20262026-06-03T08:45:25+00:00 2026-06-03T08:45:25+00:00

I want to read a set of strings in an array. The size of

  • 0

I want to read a set of strings in an array. The size of the array is to be decided at run-time using malloc or alloc i.e. the number of strings are accepted as input. I tried the following code but it doesn’t worked.

char *array;
array=(char*)malloc(sizeof(char)*t); //t is the size of array
for(int temp=0;temp<t;temp++)
{
    gets(a[temp]);
}

The same worked in case of array of integers.
Please help me in finding the solution.

  • 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-03T08:45:26+00:00Added an answer on June 3, 2026 at 8:45 am

    C doesn’t have any automatic built-in support for storing strings, there is no variable that is “a string”, and can automatically grow to hold the proper number of characters. You need to allocate the memory yourself.

    What you’re doing now, is allocating place for the proper number of character pointers, but not for any characters. So the gets() call is writing into memory that is not allocated, which is undefined behavior. Since the integers fit completely in a single allocation each, that’s why similar code worked for integers. Strings are more complex, so you need to do more work.

    If there is any known upper bound on the length of these strings, you can use a temporary buffer of fixed length, and then copy from that into newly allocated dynamic memory once you know the required size. If there is no such bound, you need to repeat the same concept, by reading a fixed block, storing that, and if no end of line was found, read another block, grow the memory allocation for this string using realloc(), append the new characters, and repeat until the line ends.

    As a side note, you should always avoid using gets(), since it doesn’t support protecting your program against buffer overrun. It’s much better to use fgets(), documented on the same page.

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

Sidebar

Related Questions

I want to read cartesian coordinates of a large set of points from of
I want to read lines from a file into a Set or List. Is
I want to read the count of characters for a cell and set it
When I want to add the line SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED right
I want to read UTF-8 strings from a server that I have control of,
I am building an array and I want it to be a fixed size
I've created a multidimensional array and want to set the entire inner array equal
I have a text file. I want read that file. But In that if
I have a specific object with image data. And I want read/write images (in
I want to read the registry to find the current PowerPoint version. However this

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.