How can I set an array's size at run time?
Answers were Sorted based on User's Feedback
Answer / suman
by using calloc() or malloc() functions we create at run
time
i think it will be correct if not forgive me
sumankumar..........
Is This Answer Correct ? | 4 Yes | 0 No |
Answer / shalabh
This can be done by using malloc...if u have an integer
array then ...you can ask user the size..and then allocate
memory for integers...at the run time...using malloc()
Is This Answer Correct ? | 4 Yes | 0 No |
You can't do that in C. Use dynamic allocation method
to implement array. See Q. 20 and 41 in
http://www.geocities.com/vijoeyz/faq/
Best,
Vijay Zanvar,
Home Page - http://geocities.com/vijoeyz/
Is This Answer Correct ? | 3 Yes | 0 No |
Answer / lp
Declare a integer array size at runtime:
1.declare an interget pointer. - int *ptr
2.Get the size of array from user - int n
3.using malloc() ,allocate that many number of location to
the pointer. - ptr = malloc(n*sizeof(int));
4.Make use of the dynamically allocated array. - ptr[]
Is This Answer Correct ? | 5 Yes | 2 No |
Answer / rajendra
#include <stdlib.h> /* EXIT_FAILURE, EXIT_SUCCESS */
#include <errno.h>
#include <stdio.h>
#define ROW 5
#define COL 5
int
main ( void )
{
int **cont_arr;
int **cont_arr;
int **arr = malloc ( ROW * sizeof ( int * ) );
if ( !arr )
{
perror ( "Error" );
exit ( EXIT_FAILURE );
}
for ( i=0; i < ROW; i++ )
{
arr[i] = malloc ( sizeof ( int ) * COL );
if ( !arr[i] )
{
perror ( "Error" );
exit ( EXIT_FAILURE );
}
}
/*
* Contiguous memory allocated for array.
Below.
*/
cont_arr = (int **) malloc ( ROW * sizeof ( int
* ) );
if ( !cont_arr )
{
perror ( "Error" );
exit ( EXIT_FAILURE );
}
cont_arr[0] = (int *) malloc ( ROW * COL *
sizeof ( int ) );
if ( !cont_arr[0] )
{
perror ( "Error" );
exit ( EXIT_FAILURE );
}
for ( int i=1; i < ROW; i++ )
cont_arr[i] = cont_arr[0] + i * COL;
exit ( EXIT_SUCCESS );
}
Is This Answer Correct ? | 4 Yes | 2 No |
Answer / vinod
C99 and above supports the conceptof VLA(Variable Length Array) which allows you to set array size based on input during run time. It can also done using dynamic memory allocation.
Example:
int main()
{
int i;
scanf("%d",&i);
int a[i];
}
Is This Answer Correct ? | 1 Yes | 0 No |
Answer / nithin
int main()
{
int i, max;
// Array
int *a;
printf("Enter the size of array\n");
scanf("%d", &max);
//Run time size allocation of an array
a = (int*)malloc(max * sizeof(int));
for(i = 0; i < max;i++)
{
a[i] = i * 2;
printf("value of element %d is %d\n", i, a
[i]);
}
return 0;
}
Is This Answer Correct ? | 0 Yes | 0 No |
What is struct node in c?
What is an array in c?
Is the exit() function same as the return statement? Explain.
0 Answers Agilent, ZS Associates,
Find Error if any in below code, Justify ur answer: struct xx { int a; struct yy { char c; struct xx* p; } struct yy* q; }
hello everybody can we change a the adress of a variabl i mean can i put for exemple for a int *p: &p=6 ?????????
What does %f mean c?
What is the difference between array and structure in c?
What is the role of this pointer?
Explain what happens if you free a pointer twice?
i want to know the procedure of qualcomm for getting a job through offcampus
What is the difference between null pointer and void pointer
10 Answers CTS, Manforce, MAQ Software,
write a program to print the consecutive repeated character from the given string... input string is : hhhhjkutskkkkkggggj output should be like this: hhhhkkkkkgggg anyone help me...