# Program: User Input String

In this C programming challenge, you will create a program that allows the user to input a text string. The program will utilize dynamic memory allocation to handle variable-sized input strings. Follow the requirements below:

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

int main() {
    int limit;

    // Get the limit of the string from the user
    printf("Enter the limit for the string: ");
    scanf("%d", &limit);

    // Allocate memory for the string dynamically
    char *inputString = (char *)malloc((limit + 1) * sizeof(char)); 
    // Adding 1 for the null terminator

    // Check if memory allocation was successful
    if (inputString == NULL) {
        printf("Memory allocation failed. Exiting program.\n");
        return 1; // Exit with an error code
    }

    // Prompt the user to enter the string
    printf("Enter the string: ");
    scanf(" %[^\n]", inputString);

    // Print the entered string
    printf("You entered: %s\n", inputString);

    // Release the dynamically allocated memory
    free(inputString);

    return 0; // Exit successfully
}
```

## Explanation

1. The program prompts the user to enter the limit for the string and reads the input using `scanf`.
2. Dynamic memory is allocated for the string using `malloc`, taking into account the specified limit. The `+ 1` is for the null terminator '\0'.
3. A check is performed to ensure that the memory allocation was successful. If not, the program exits with an error message.
4. The user is prompted to enter the string, and `scanf` with the format specifier `%[^\n]` is used to capture the entire line of text.
5. The entered string is then printed.
6. Finally, the dynamically allocated memory is released using `free`.

This program demonstrates the use of dynamic memory allocation for handling user input strings with a flexible size limit.

If you have specific questions or if there are additional topics you'd like to explore, feel free to ask!
