new vs malloc() y free() vs delete en C++

Usamos operadores new y delete en C++ para asignar memoria dinámicamente, mientras que las funciones malloc() y free() también se usan para el mismo propósito en C y C++. La funcionalidad de new o malloc() y delete o free() parece ser la misma pero difieren en varios aspectos. El comportamiento con respecto a las llamadas … Continue reading «new vs malloc() y free() vs delete en C++»

¿Por qué anular tanto el nuevo operador global como el operador específico de clase no es ambiguo?

La siguiente sección trata sobre la resolución de sobrecarga, ya que ayuda en los fundamentos de la sobrecarga y la anulación. Predecir la salida: #include <iostream> using namespace std;    class Gfg { public:     void printHello()     {         cout << «hello gfg-class specific» << endl;     } };    void printHello() {     cout << «hello gfg-global» << … Continue reading «¿Por qué anular tanto el nuevo operador global como el operador específico de clase no es ambiguo?»

Cómo declarar una array 2D dinámicamente en C++ usando un nuevo operador

Prerrequisito: Array Basics En C / C++ , arreglos multidimensionales en palabras simples como un arreglo de arreglos. Los datos en arrays multidimensionales se almacenan en forma tabular (en orden de fila principal). A continuación se muestra la forma general de declarar arrays N-dimensionales : Sintaxis de una array multidimensional : tipo_datos nombre_array[tamaño1][tamaño2]….[tamañoN]; data_type: tipo … Continue reading «Cómo declarar una array 2D dinámicamente en C++ usando un nuevo operador»

¿Diferencia entre int* p() e int (*p)()?

Un puntero es una variable cuyo valor es la dirección de otra variable, es decir, la dirección directa de la ubicación de memoria. Como cualquier variable o constante , se debe declarar un puntero antes de almacenar cualquier dirección de variable. La forma general de una declaración de variable de puntero es: Sintaxis: type *var_name; … Continue reading «¿Diferencia entre int* p() e int (*p)()?»

Si la asignación de memoria usando new falla en C++, ¿cómo se debe manejar?

En este artículo, si la asignación de memoria usando new falla en C++ , ¿cómo debería manejarse? Cuando un objeto de una clase se crea dinámicamente usando un operador nuevo , el objeto ocupa memoria en el montón. A continuación se presentan las cosas más importantes que se deben tener en cuenta: ¿Qué sucede si … Continue reading «Si la asignación de memoria usando new falla en C++, ¿cómo se debe manejar?»

¿Qué sucede si mezclamos lo nuevo y lo gratuito en C++?

Como sabemos, new se usa para crear memoria dinámicamente y es responsabilidad del programador eliminar la ubicación de la memoria explícitamente y se elimina utilizando la palabra clave delete . La sintaxis para crear memoria en tiempo de ejecución usando una nueva palabra clave: int *ptr = nuevo int; Creará una ubicación de memoria para … Continue reading «¿Qué sucede si mezclamos lo nuevo y lo gratuito en C++?»

¿Dónde se almacena un objeto si se crea dentro de un bloque en C++?

Hay dos partes de la memoria en las que se puede almacenar un objeto: pila : la memoria de la pila es utilizada por todos los miembros que se declaran dentro de bloques/funciones. Tenga en cuenta que el principal también es una función. montón : esta memoria no se usa y se puede usar para … Continue reading «¿Dónde se almacena un objeto si se crea dentro de un bloque en C++?»

C++ | nuevo y eliminar | Pregunta 5

¿Está bien llamar a eliminar dos veces para un puntero? #include<iostream> using namespace std;    int main() {     int *ptr = new int;     delete ptr;     delete ptr;     return 0; } (A) Sí (B) No Respuesta: (B) Explicación: Es un comportamiento indefinido llamar a eliminar dos veces en un puntero. Cualquier cosa puede pasar, el programa … Continue reading «C++ | nuevo y eliminar | Pregunta 5»

C++ | nuevo y eliminar | Pregunta 2

¿Cuál de los siguientes es cierto acerca de new en comparación con malloc. 1) new es un operador, malloc es una función 2) new llama al constructor, malloc no lo hace 3) new devuelve el puntero apropiado, malloc devuelve void * y el puntero debe encasillarse en el tipo apropiado. (A) 1 y 3 (B) … Continue reading «C++ | nuevo y eliminar | Pregunta 2»

C++ | nuevo y eliminar | Pregunta 1

¿Cómo crear una array dinámica de punteros (a enteros) de tamaño 10 usando new en C++? Sugerencia: podemos crear una array no dinámica usando int *arr[10] (A) int *arr = new int *[10]; (B) int **arr = nuevo int *[10]; (C) int *arr = nuevo int [10]; (D) Respuesta no posible : (B) Explicación: la … Continue reading «C++ | nuevo y eliminar | Pregunta 1»