¿Necesita malloc en C ++?
¿Necesita malloc en C ++?

Video: ¿Necesita malloc en C ++?

Video: ¿Necesita malloc en C ++?
Video: malloc, calloc, realloc, and free - Introducing Dynamic Heap Memory System Calls in C's stdlib.h 2024, Mayo
Anonim

usted usar malloc cuando necesitas para asignar objetos que debe existen más allá de la vida útil de ejecución del bloque actual (donde una copia al retorno haría ser caro también), o si necesitas asignar memoria mayor que el tamaño de esa pila (es decir, una matriz de pila local de 3 MB es una mala idea).

Además, ¿necesita malloc en C ++?

La diferencia es simple: malloc asigna memoria, mientras que new asigna memoria Y llama al constructor del objeto usted Estás asignando memoria para. Entonces, a menos que usted están restringidos a C, debería nunca usar malloc , especialmente cuando se trata de C ++ objetos.

Uno también puede preguntarse, ¿cuál es el punto de malloc? En C, la función de biblioteca malloc se utiliza para asignar un bloque de memoria en el montón. El programa accede a este bloque de memoria a través de un puntero que malloc devoluciones. Cuando la memoria ya no se necesita, el puntero se pasa a free, lo que desasigna la memoria para que pueda usarse para otros fines.

De esta manera, ¿hay malloc en C ++?

El malloc () función en C ++ asigna a bloque de memoria no inicializada y retornos a puntero vacío a los primer byte de los bloque de memoria asignado si los la asignación se realiza correctamente. Si los el tamaño es cero, los el valor devuelto depende de los implementación de los Biblioteca. Eso puede o no puede ser a puntero nulo.

¿Cómo mallocáis una estructura?

Para lo que quieres necesitas dos malloc () s. estructura Vector * y = malloc (tamaño de * y); / * Tenga en cuenta el puntero * / y-> x = calloc (10, sizeof * y-> x); En la primera línea, asigna memoria para un objeto Vector. malloc () devuelve un puntero a la memoria asignada, por lo que y debe ser un puntero vectorial.