malloc
De cppreference.com
Déclaré dans l'en-tête <stdlib.h>
|
||
void* malloc( size_t size ); |
||
Alloue size
octets de mémoire non initialisée.
Si l'allocation réussit, un pointeur vers le premier octet du bloc de mémoire alloué, correctement aligné pour n'importe quel type d'objet, est retourné.
Si size
vaut zéro, le comportement dépend de l'implémentation : un pointeur NULL
peut être retourné, ou un pointeur non NULL
qui ne peut être utilisé pour accéder à la mémoire.
Sommaire |
[modifier] Paramètres
size | - | nombre d'octets à allouer |
[modifier] Retourne la valeur
Pointeur sur le début de la mémoire nouvellement allouée ou pointeur NULL
si une erreur s'est produite. Le pointeur doit être libéré avec free()
ou realloc()
.
[modifier] Example
#include <stdio.h> #include <stdlib.h> int main(void) { int *p1 = malloc(4*sizeof(int)); // alloue de l'espace pour un tableau de 4 int int *p2 = malloc(sizeof(int[4])); // idem, en indiquant le type int *p3 = malloc(4*sizeof *p3); // idem, sans indiquer le type if(p1) { for(int n=0; n<4; ++n) // remplir le tableau p1[n] = n*n; for(int n=0; n<4; ++n) // affiche le tableau printf("p1[%d] == %d\n", n, p1[n]); } free(p1); free(p2); free(p3); }
Résultat :
p1[0] == 0 p1[1] == 1 p1[2] == 4 p1[3] == 9
[modifier] Voir aussi
C++ documentation for malloc
|