xxxxxxxxxx
#include <stdlib.h>
void *malloc(size_t size);
void exemple(void)
{
char *string;
string = malloc(sizeof(char) * 5);
if (string == NULL)
return;
string[0] = 'H';
string[1] = 'e';
string[2] = 'y';
string[3] = '!';
string[4] = '\0';
printf("%s\n", string);
free(string);
}
/// output : "Hey!"
xxxxxxxxxx
// 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;
xxxxxxxxxx
int main(int argc, char *argv[])
{
int* memoireAllouee = NULL;
memoireAllouee = malloc(sizeof(int));
if (memoireAllouee == NULL) // Si l'allocation a échoué
{
exit(0); // On arrête immédiatement le programme
}
// On peut continuer le programme normalement sinon
return 0;
}
xxxxxxxxxx
#include <stdlib.h>
int main(){
int *ptr;
ptr = malloc(15 * sizeof(*ptr)); /* a block of 15 integers */
if (ptr != NULL) {
*(ptr + 5) = 480; /* assign 480 to sixth integer */
printf("Value of the 6th integer is %d",*(ptr + 5));
}
}
xxxxxxxxxx
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.
xxxxxxxxxx
int cp(void)
{
char *s;
s = malloc(12);
strcpy(s, "Best School");
return (0);
}