Características y uso de punteros en C/C++

Los punteros almacenan la dirección de las variables o una ubicación de memoria. Sintaxis: datatype *var_name; Ejemplo: el puntero «ptr» contiene la dirección de una variable entera o contiene la dirección de la memoria a cuyos valores se puede acceder como valores enteros a través de «ptr» int *ptr; Características de los punteros: Los punteros … Continue reading «Características y uso de punteros en C/C++»

¿Cómo restringir la asignación dinámica de objetos en C++?

El lenguaje de programación C++ permite objetos asignados automáticamente (o asignados por pila) y dinámicamente. En Java y C#, todos los objetos deben asignarse dinámicamente utilizando new. C++ admite objetos asignados a la pila por razones de eficiencia del tiempo de ejecución. Los objetos basados ​​en pilas son administrados implícitamente por el compilador de C++. Se … Continue reading «¿Cómo restringir la asignación dinámica de objetos en C++?»

Diferentes formas de usar Const con referencia a un puntero en C++

Antes de seguir adelante con el uso de const con Referencia a punteros, primero veamos cuáles son uno por uno: Los punteros se utilizan para almacenar la dirección de las variables o una ubicación de memoria. Una variable se puede declarar como un puntero poniendo ‘ * ‘ en la declaración. datatype *var_name; Ejemplo: // … Continue reading «Diferentes formas de usar Const con referencia a un puntero en C++»

¿Cómo se pasan las arrays a las funciones en C/C++?

Una array completa no se puede pasar como argumento a una función en C++. Sin embargo, puede pasar un puntero a una array sin índice especificando el nombre de la array. En C, cuando pasamos una array a una función, digamos fun(), fun() siempre la trata como un puntero. El siguiente ejemplo demuestra lo mismo.  … Continue reading «¿Cómo se pasan las arrays a las funciones en C/C++?»

Cómo implementar punteros compartidos definidos por el usuario en C++

Punteros compartidos:  un std::shared_ptr es un contenedor para punteros sin procesar. Es un modelo de propiedad de recuento de referencias, es decir, mantiene el recuento de referencias de su puntero contenido en cooperación con todas las copias de std::shared_ptr. Por lo tanto, el contador se incrementa cada vez que un nuevo puntero apunta al recurso … Continue reading «Cómo implementar punteros compartidos definidos por el usuario en C++»

«eliminar esto» en C++

Idealmente, el operador de eliminación no debe usarse para este puntero. Sin embargo, si se usa, se deben considerar los siguientes puntos. 1) el operador de eliminación funciona solo para objetos asignados usando el operador nuevo (Ver esta publicación ). Si el objeto se crea usando new, entonces podemos hacer delete this , de lo … Continue reading ««eliminar esto» en C++»

Diferencia entre iteradores y punteros en C/C++ con ejemplos

Puntero : Un puntero es una variable que contiene la dirección de otra variable, es decir, la dirección de la ubicación de memoria de la variable. Como cualquier variable o constante, debemos declarar un puntero antes de usarlo para almacenar cualquier dirección de variable. Sintaxis:   type* var_name; Ejemplo:  C++ // The output of this program … Continue reading «Diferencia entre iteradores y punteros en C/C++ con ejemplos»

Escriba su propio memcpy() y memmove()

La función memcpy se utiliza para copiar un bloque de datos desde una dirección de origen a una dirección de destino. A continuación se muestra su prototipo. void * memcpy(void * destination, const void * source, size_t num); La idea es simplemente encasillar las direcciones dadas en char * (char toma 1 byte). Luego, uno … Continue reading «Escriba su propio memcpy() y memmove()»

Plantilla is_pointer en C++

La plantilla std::is_pointer de C++ STL se usa para verificar si el tipo dado es un puntero o no. Devuelve un valor booleano que muestra lo mismo. Sintaxis : template <class T > struct is_pointer; Parámetro : esta plantilla acepta un solo parámetro T (clase de rasgo) para verificar si T es un puntero o … Continue reading «Plantilla is_pointer en C++»

borrar y liberar() en C++ – Part 1

delete y free() tienen funcionalidades similares en lenguajes de programación pero son diferentes. En C++, el operador de eliminación solo debe usarse para los punteros que apuntan a la memoria asignada mediante el operador new o para un puntero NULL, y free() solo debe usarse para los punteros que apuntan a la memoria asignada mediante … Continue reading «borrar y liberar() en C++ – Part 1»