Dynamic Memory Location
// calloc( ) function with Dynamic Array
#include
#include
int main()
{
int *p;
int i, n, s;
printf( ” Enter Number of Terms : ” );
scanf( “%d”, &n );
p = (int *)calloc( n, sizeof(int) );
if( !p )
printf( “\nUnable to allocate size.\n” );
else
{
for( i=0 ; i<n ; i++ )
{
printf( ” Enter Value : ” );
scanf( “%d”, (p+i) );
}
printf( ” Values are : ” );
s = 0;
for( i=0 ; i<n ; i++ )
{
printf( ” %d”, *(p+i) );
s = s + *(p+i);
}
printf( “\n Sum of Elements = %d”, s );
}
free( p );
return 0;
}
Output:
Enter Number of Terms : 5
Enter Value : 20
Enter Value : 40
Enter Value : 60
Enter Value : 80
Enter Value : 100
Values are : 20 40 60 80 100
Sum of elements = 300
// malloc( ) function with single variable
#include
#include
int main ()
{
int *p;
p = ( int* ) malloc(1 * sizeof( int ) );
*p = 23;
printf( “\n Value : %d”, *p );
free( p );
return 0;
}
Output:
Value : 23
// use realloc( ) function
#include
#include
#include
int main()
{
int *p;
int i, x, n, s;
printf( ” Enter Size of Dynamic Array : ” );
scanf( “%d”, &n );
p = (int *)malloc(n * sizeof(int) );
if( !p )
printf( “\nUnable to allocate size.\n” );
else
{
for( i=0 ; i<n ; i++ )
{
printf( ” Enter Value : ” );
scanf( “%d”, (p+i) );
}
printf( ” Values are : ” );
s = 0;
for( i=0 ; i<n ; i++ )
{
printf( ” %d”, *(p+i) );
s = s + *(p+i);
}
printf( “\n Sum of Elements = %d”, s );
x = n;
printf( “\n\n Enter New Size of Dynamic Array : ” );
scanf( “%d”, &n );
realloc( p, n * sizeof(int) );
if( !p )
{
printf( “\nUnable to allocate size \n” );
exit( 1 );
}
for( i=x ; i<n ; i++ )
{
printf( ” Enter Additional Value : ” );
scanf( “%d”, (p+i) );
}
printf( ” Values are : ” );
s = 0;
for( i=0 ; i<n ; i++ )
{
printf( ” %d”, *(p+i) );
s = s + *(p+i);
}
printf( “\n Sum of elements = %d”, s );
}
free( p );
return 0;
}
Output:
Enter Size of Dynamic Array : 5
Enter Value : 20
Enter Value : 40
Enter Value : 60
Enter Value : 80
Enter Value : 100
Values are : 20 40 60 80 100
Sum of elements = 300
Enter New Size of Dynamic Array : 7
Enter Additional Value : 120
Enter Additional Value : 140
Values are : 20 40 60 80 100 120 140
Sum of elements = 560
// calloc( ) function with single variable
#include
#include
int main ()
{
int *p;
p = ( int* ) calloc( 1, sizeof( int ) );
*p = 23;
printf( “\n Value : %d”, *p );
free( p );
return 0;
}
Output:
Value : 23
// malloc( ) function with String
#include
#include
#include
int main ()
{
char s1[25] = “Nils Patel”;
int len = strlen( s1 );
char *ps;
ps = ( char* ) malloc( ( len+1 ) * sizeof( int ) );
strcpy( ps, s1 );
printf( “\n ps = %s”, ps );
free( ps );
return 0;
}
Output:
ps = Nils Patel
// malloc( ) function with Array
#include
#include
int main ()
{
int *p;
int i;
p = ( int* ) malloc( 5 * sizeof( int ) );
for( i=0 ; i<5 ; i++ )
{
printf( ” Enter Value : ” );
scanf( “%d”, (p+i) );
}
printf( “\n Values are : ” );
for( i=0 ; i<5 ; i++ )
{
printf( ” %d”, *(p+i) );
}
free( p );
return 0;
}
Output:
Enter Value : 10
Enter Value : 23
Enter Value : 15
Enter Value : 45
Enter Value : 50
Values are : 10 23 15 45 50
// malloc( ) function with Dynamic Array
#include
#include
int main()
{
int *p;
int i, n, s;
printf( ” Enter Number of Terms : ” );
scanf( “%d”, &n );
p = (int *) malloc( n * sizeof(int) );
if( !p )
printf( “\nUnable to allocate size \n” );
else
{
for( i=0 ; i<n ; i++ )
{
printf( ” Enter Value : ” );
scanf( “%d”, (p+i) );
}
printf( ” Values are : ” );
s = 0;
for( i=0 ; i<n ; i++ )
{
printf( ” %d”, *(p+i) );
s = s + *(p+i);
}
printf( “\n Sum of elements = %d”, s );
}
free( p );
return 0;
}
Output:
Enter Number of Terms : 5
Enter Value : 20
Enter Value : 40
Enter Value : 60
Enter Value : 80
Enter Value : 100
Values are : 20 40 60 80 100
Sum of elements = 300