[Lenguaje C] gestión de memoria

gestión de la memoria

  • calloc(): asigna dinámicamente números continuos de espacios de tamaño largo, cada byte se inicializa en 0: es decir, se asigna un espacio de memoria de número * tamaño de bytes de longitud, y el valor de cada byte es 0
    • void *calloc(int num, int size);
  • malloc(): el área del montón asigna un espacio de memoria de un tamaño específico para almacenar datos, no inicializados, y su valor es desconocido
    • void *malloc(int num);
  • free(): libera el bloque de memoria al que apunta la dirección y libera el espacio de memoria asignado dinámicamente
    • void free(void *address);
  • realloc(): reasignar memoria, expandir memoria a nuevo tamaño
    • void *realloc(void *address, int newsize);

void *: Puntero de tipo indeterminado, C, C++ se puede convertir a otro tipo de puntero mediante el tipo de conversión

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
    char name[100];
    char *description;
    strcpy(name, "Zara Ali");
    description = (char*)malloc(200*sizeof(char));  //  分配内存
    description = (char*)calloc(200,sizeof(char));
    description = (char*)realloc(description, 100*sizeof(char));    //  重新分配内存
    free(description);  //  释放内存
}

Supongo que te gusta

Origin blog.csdn.net/weixin_46143152/article/details/126688351
Recomendado
Clasificación