[C con Clase] Declaración e inicialización de punteros y typedef.

marcelinux marcelinator en gmail.com
Lun Mar 5 11:05:59 CET 2018


El pasado 2018-03-03 16:30:03, Steven Davidson escribió:
 
SD> Hola Marcelinux,
SD> Para el primer caso, sí podrías definir el tipo de dato completamente. Por
SD> ejemplo,
SD> typedef int * (*tipo_array_ptr_puntero)[7];
SD> tipo_array_ptr_puntero  ptr;
SD> El problema vendría a la hora de usar el operador 'new' o 'new[]', ya que
SD> necesitas el tipo del dato apuntado, y no el tipo del puntero. Es decir, lo
SD> siguiente es incorrecto:
SD> ptr = new tipo_array_ptr_puntero;
SD> El operador 'new' necesita el tipo: 'int * [7]', que es el tipo del dato
SD> apuntado.
SD> Lo que podríamos hacer es crear dos tipos de datos en una sola sentencia
SD> 'typedef'. Por ejemplo,
SD> typedef int * tipo_array_ptr[7], * tipo_array_ptr_puntero;
SD> tipo_array_ptr_puntero  ptr;
SD> ptr = new tipo_array_ptr;
SD> Para el último caso, tienes que separar las dos sentencias en dos
SD> sentencias. En otras palabras, no puedes declarar una variable y definir un
SD> tipo en una sola sentencia: son dos sentencias diferentes.
SD> Espero haber aclarado las dudas.
SD> Steven

Lo siento. Creo que es demasiado para mi nivel actual.
Volveré a intentarlo cuando profundice en el manejo de punteros.
Muchísimas gracias. Seguiremos en contacto.


Más información sobre la lista de distribución Cconclase