// Program to calculate the sum of n numbers entered by the user
#include <stdio.h>
#include <stdlib.h>
int main() {
int n, i, *ptr, sum = 0;
printf("Enter number of elements: ");
scanf("%d", &n);
ptr = (int*) malloc(n * sizeof(int));
// if memory cannot be allocated
if(ptr == NULL) {
printf("Error! memory not allocated.");
exit(0);
}
printf("Enter elements: ");
for(i = 0; i < n; ++i) {
scanf("%d", ptr + i);
sum += *(ptr + i);
}
printf("Sum = %d", sum);
// deallocating the memory
free(ptr);
return 0;
}
// if you initialize a pointer and want to use it like an array,
// you have to claim the space you use,
// that is what the memory-allocation-funtion (malloc) does;
// exaple for that: str(0) belongs to you, but str(1), str(2), ... do not
// if you do not use the malloc funtion;
// you can access it, but it could be used by another programm;
#include <stdio.h>
#include <stdlib.h>
void func(void)
{
char *str = malloc(sizeof(char) * 5); // sizeof --> char needs
// a specific space per value saved;
// *5 --> 5 is the number of values in the array;
char *str1 = malloc( 5 * sizeof *str1 );// |
char *str2 = malloc( sizeof(char[5]) );// | other syntaxes
if(str == NULL) { exit(1); } // malloc returns NULL
// if it could not allocate the memory;
str[0] = 'H';
*(str+1) = 'e'; // used like pointer
str[2] = 'y'; // used like array
*(str+3) = '!';
str[4] = ' ';
printf("%s
", str);
free(str); // frees the memory allocated to str;
// if you free the memory too early and try to access str later
// that is called a memory leak;
}
int main(void)
{
func();
return 0;
}
// shell: Hey!
// improved version of Thurger's
// Let's allocate enough space on the heap for an array storing 4 ints
intArray = (int *) malloc(4 * sizeof(int)); // A pointer to an array of ints
intArray[0] = 10;
intArray[1] = 20;
intArray[2] = 25;
intArray[3] = 35;
/*
*Dynamic memory creation using malloc
*Language: C
*/
#include<stdio.h>
//To use malloc function in our program
#include<stdlib.h>
int main()
{
int *ptr;
//allocating memory for 1 integer
ptr = malloc(sizeof(int));
if(ptr != NULL)
printf("Memory created successfully
");
return 0;
}
In C, the library function malloc is used to allocate a block of memory on the heap. The program accesses this block of memory via a pointer that malloc returns. When the memory is no longer needed, the pointer is passed to free which deallocates the memory so that it can be used for other purposes.