Espaces de noms
Variantes
Affichages
Actions

malloc

De cppreference.com
< c‎ | memory
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