title: Channel Zero (serie de televisión)

text: La primera entrega, basada en "Candle Cove" de Kris Straub, está protagonizada por Paul Schneider y Fiona Shaw y fue dirigida por Craig William Macneill. La serie se estrenó el 11 de octubre de 2016. La segunda temporada de "Channel Zero" está basada en "La casa sin fin" de Brian Russell y es dirigida por Steven Piet, y se estrenó el 20 de septiembre de 2017. La tercera temporada de "Channel Zero", se basa en "Búsqueda y Rescate en el Bosque" de Kerry Hammond y fue dirigida por Arkasha Stevenson. La temporada se estrenó el 7 de febrero de 2018. La cuarta temporada de "Channel Zero", se basa en "La Puerta oculta" de Charlotte Bywater y está dirigida por E. L. Katz. La temporada se estrenó por seis días consecutivos a partir del 26 de octubre de 2018 y finalizado el 31 de octubre de 2018, emitiéndose en vísperas de Halloween.


title: Channel Zero (serie de televisión)

text: El 16 de enero de 2019, después de cuatro temporadas el canal Syfy canceló la serie "Channel Zero". El mismo director de la serie Nick Antosca comunicó la noticia a través de su cuenta de Instagram.


title: Channel Zero (serie de televisión)

text: El psicólogo Mike Pintor (Paul Schneider) regresa a su casa de la infancia en una pequeña ciudad para investigar la misteriosa desaparición de su hermano gemelo y de un grupo de niños en el año 1988, y de cómo estos sucesos están conectados con la extraña serie televisiva que veían los niños de la ciudad y que se emitió al mismo tiempo que las desapariciones.


title: Channel Zero (serie de televisión)

text: Una joven llamada Margot Sleator (Amy Forsyth) visita «La casa sin fin», una extraña casa de los horrores que consta de una serie de habitaciones consecutivas cada cual más perturbadora que la anterior. Cuándo regresa a casa, Margot se da cuenta de que todo ha cambiado.


title: Channel Zero (serie de televisión)

text: Una joven llamada Alice Woods (Olivia Luccardi) se muda junto a su hermana Zoe Woods (Holland Roden) a una ciudad con muchas desapariciones y tras descubrir que pueden estar conectadas con un rumor desconcertante sobre canibalismo y un mito urbano sobre "Escaleras en el bosque", ella y su hermana se proponen descubrir qué está atacando a los residentes de la ciudad.


title: Channel Zero (serie de televisión)

text: Los recién casados Jillian (Maria Sten) y Tom (Brandon Scott) arrastran secretos a su matrimonio. Cuando descubren una extraña puerta en su sótano, esos secretos comienzan a interferir en su relación y sus vidas.


title: Channel Zero (serie de televisión)

text: En 2015, Syfy anunció que dio luz verde a una tanda de doce episodios para "Channel Zero", los cuales se emitirían en dos temporadas de seis episodios. La primera temporada se centraría en el popular "creepypasta" Candle Cove y estaría basado en un guion escrito por Antosca. La segunda temporada se centraría en una historia nueva, también basada en un "creepypasta" o leyenda urbana. Universal Cable Production serviría como compañía de producción de la serie, con Landis y Antosca haciendo de productores ejecutivos de la serie.


title: Channel Zero (serie de televisión)

text: Craig William Macneill fue elegido para dirigir la primera temporada de "Channel zero" en febrero de 2016. Paul Schneider y Fiona Shaw fueron confirmados como protagonista de la primera temporada de "Channel zero" en junio de 2016. Schneider interpretaría a Mike Pintor, un psicólogo cuyo hermano de gemelo fue desapareció hace años, cuando eran niños, y cuya madre, interpretada por Shaw, pasa de reticente a indulge en su deseo de investigar. Natalie Brown y Shaun Benson también fueron nombrados para interpretar la serie. La filmación empezó en Selkirk durante mayo de 2016 y terminó el 18 de julio , después de un rodaje de 46 días.


title: Channel Zero (serie de televisión)

text: La temporada 2 se tituló "No-End House". La filmación comenzó el 3 de septiembre de 2016 en Oakbank Manitoba, Canadá.


title: Channel Zero (serie de televisión)

text: La primera temporada de "Channel zero" recibió generalmente comentarios favorables de los críticos, con un índice de 75 de 100 en Metacritic basado en 5 críticas. En Rotten Tomatoes tiene un índice de aprobación de 86% basado en 21 críticas, con un promrdio de 6,83/10. El consenso de los críticos del sitio dice: «Horripilante, inquietante y refrescantemente única, "Channel zero: Candle cove" se basa en temores de la infancia fácilmente identificables mientras se descascaran las capas de misterio de la espina dorsal».


title: Channel Zero (serie de televisión)

text: La segunda temporada recibió críticas muy favorables de los críticos. En Rotten Tomatoes, tiene un índice de aprobación del 100% basado en 14 reseñas, con una calificación promedio de 8.4/10. El consenso crítico del sitio dice: «El misterio central de "No End House" es más fuerte y aterrador que el primero de "Channel Zero", consolidando su estatus como una de las ofertas de terror más aterradoras de la televisión».


title: Channel Zero (serie de televisión)

text: La tercera temporada tiene un índice de aprobación del 100% en Rotten Tomatoes según 11 reseñas, con una calificación promedio de 8.5/10. El consenso de los críticos del sitio dice: «Más espeluznante que nunca, "Channel Zero: Butcher's Block" ofrece los elementos perturbadores que exige un buen horror, con la ventaja adicional de una narrativa sólida».


title: Proyecto de Unión del Estrecho de Bering

text: Conocido como Puente Intercontinental de la Paz, es un puente o túnel que atravesaría el estrecho de Bering entre la Península de Chukotka en el distrito ruso de Chukotka y la Península de Seward en el estado estadounidense de Alaska. En ambos casos, proporcionarían una conexión que uniría Eurasia y América Septentrional.


text: Con las dos Islas Diómedes entre las penínsulas, el Estrecho de Bering podría ser atravesado por un puente y un túnel. Podría haber un puente largo, de casi 40 km, que conectaría Alaska con las Islas Diomede, y un túnel que conectaría las Islas Diómedes con Rusia. La tierra resultante de la perforación del túnel podría ser utilizada como relleno para conectar las dos islas.


text: Se han presentado varias propuestas para cruzar el Estrecho de Bering realizadas por varias personas, canales de televisión, revistas, etc. Los nombres de los túneles ha incluido "TKM-World Link" y "Tunel de la paz AmerAsiático". En abril de 2007, funcionarios del gobierno ruso comunicaron a la prensa que el gobierno ruso respaldará un plan de $65.000 millones de dólares en un consorcio de empresas para construir un túnel del Estrecho de Bering.


text: El concepto de conexión terrestre para atravesar el Estrecho de Bering se remonta a antes del . William Gilpin, primer gobernador del Territorio de Colorado, imaginó un vasto "Ferrocarril Cosmopolita" en 1890 que uniría el mundo entero a través de una serie de ferrocarriles.


text: Dos años más tarde, Joseph Strauss, quien luego diseñaría más de 400 puentes y sería Ingeniero del Proyecto para el Puente Golden Gate, presentó la primera propuesta para un puente ferroviario del Estrecho de Bering en su tesis. El proyecto fue presentado al gobierno del Imperio ruso, pero esté fue rechazado.


text: El sindicato de magnates del ferrocarril americano propuso en 1904 (a través de un portavoz francés) un ferrocarril Alaska-Siberiano desde Cabo Príncipe de Gales en Alaska a través de un túnel bajo el Estrecho de Bering y a través del noreste de Siberia hasta Irkutsk vía Cabo Dezhneva, Verjnekolymsk (en la República de Sajá) y Yakutsk. La propuesta consistía en un contrato de arrendamiento por 90 años y derechos mineros exclusivos de 13 km a cada lado del derecho de paso. Fue debatido por los funcionarios y finalmente rechazado el 20 de marzo de 1907.


text: Nicolás II de Rusia aprobó un túnel (posiblemente la propuesta americana mencionada) en 1905. Su costo se estimó en $65 millones[7] y $300 millones, incluyendo todos los ferrocarriles.


text: Estas esperanzas se vieron frustradas con el estallido de la Primera Guerra Mundial y la Revolución rusa.


text: El interés se renovó durante la Segunda Guerra Mundial con la conclusión en 1942-43 de la Autopista de Alaska que une el territorio remoto de Alaska con Canadá y los Estados Unidos contiguos. En 1942, la Asociación de Política Exterior preveía que la carretera continuaría enlazándose con Nome ahasta el Estrecho de Bering, enlazada por autopista con la cabecera del ferrocarril en Irkutsk, utilizando un servicio alternativo de transbordador marítimo y aéreo a través del Estrecho de Bering.


text: En 1958, el ingeniero T. Y. Lin sugirió la construcción de un puente a través del Estrecho de Bering "para fomentar el comercio y el entendimiento entre el pueblo de los Estados Unidos y la Unión Soviética". Diez años después, organizó el "Puente Intercontinental de la Paz, Inc". una institución sin fines de lucro organizada para promover esta propuesta. En ese momento hizo un estudio de factibilidad de un puente para el Estrecho de Bering y calculó el costo en $1 billón para el tramo de 80 km. En 1994, actualizó el costo a más de $4.000 millones de dólares. Al igual que Gilpin, Lin concibió el proyecto como un símbolo de cooperación y unidad internacional, y lo llamó el Puente Intercontinental de la Paz.


text: En septiembre de 2005, cuando lanzó la Federación Universal por la Paz, Sun Myung Moon trajo una nueva luz a la idea de construir lo que Moon llamó el "Puente y túnel Rey de la Paz del Estrecho de Bering", llamando a todos los gobiernos del mundo a hacer un esfuerzo conjunto para lograr la paz mundial. El 10 de febrero de 2009, la "Fundación para la Paz y la Unificación" de Sun Myung Moon anunció un concurso para el diseño de un puente en el Estrecho a través de las Islas Diomede. El ganador (anunciado el 11 de junio de 2009), fue un proyecto titulado "Archipiélago de Diomede". Propone una serie de islas artificiales que forman dos archipiélagos extendiendo los dos continentes, y tres túneles que conectan las dos islas Diomede y los archipiélagos.


text: De acuerdo con el informe del Beijing Times de mayo de 2014, los expertos chinos en transporte proponen construir una línea ferroviaria de alta velocidad de aproximadamente 10 000 kilómetros desde Manchuria hasta los Estados Unidos. El proyecto incluiría un túnel bajo el Estrecho de Bering y conectaría con los Estados Unidos contiguos a través de Canadá.


text: La profundidad del agua es un problema menor, ya que la profundidad del estrecho no es mayor a 55 metros. Las mareas y corrientes en el área no son severas.


text: La ruta se encuentra justo al sur del Círculo polar Ártico, y su localización tiene inviernos largos y oscuros y un clima extremo, incluyendo temperaturas medias en invierno de -20 °C y posibles temperaturas mínimas que se aproximan a los -50 °C. Esto significaría que los trabajos de construcción probablemente se limitarían a seis meses del año.


text: El clima también plantea desafíos para el acero expuesto. En el diseño de Lin, el hormigón cubre todas las estructuras, para simplificar el mantenimiento y ofrecer una rigidez adicional.


text: Aunque no hay iceberg en el Estrecho de Bering, Banquisas de hasta 1.8 metros de espesor están en constante movimiento durante ciertas estaciones, lo que podría producir fuerzas del orden de 44 meganewtons (9,900,000 libras de fuerza; 4,500 toneladas de fuerza) en un muelle.


text: Los caminos a ambos lados del estrecho probablemente tendrían que atravesar la tundra, lo cual requeriría ya sea un camino sin pavimentar o alguna forma de evitar los efectos del permafrost.


text: El puente probablemente conectaría Wales en Alaska donde terminara la ampliación de la Carretera Panamericana con algún punto al sur de Uelen en Rusia donde terminara la ampliación de la Autopista de Kolimá y estaría dividido por las islas Diómedes ubicadas en el centro del Estrecho de Bering. Esta propuesta implica la necesidad de un túnel para atravesar las Islas Diomede, ya que la isla de Diómedes Mayor tiene más de 1000 pies (unos 300 metros) de altura en su punto más elevado.


text: En 1994, Lin estimó el coste de un puente en "unos cuantos miles de millones" de dólares. Se calcula que las carreteras y los ferrocarriles de cada lado costarían unos cincuenta billones de dólares. Lin contrastó este costo con los recursos petroleros "que valían billones". El programa "Mega construcciones" de Discovery Channel estima el coste de una autopista, ferrocarril electrificado de doble vía de alta velocidad y oleoductos en ciento cinco billones de dólares, cinco veces el costo del Eurotúnel, de cincuenta kilómetros.


text: Esto excluye el coste de nuevas carreteras y vías férreas para su acceso al puente. Aparte de los evidentes retos técnicos de la construcción de dos puentes de cuarenta kilómetros o de un túnel de más de ochenta kilómetros a lo largo del estrecho. Otro reto importante es que, a partir de 2017, no haya nada a ambos lados del estrecho de Bering con lo que conectar el puente.


text: El lado ruso del Estrecho, en particular, carece gravemente de infraestructura. A pesar de que numerosas carreteras conectan Egvekinot con Amguema y otras ciudades de Chukotka, no hay importantes carreteras que enlacen a lo largo de casi dos mil kilómetros. Además, no existen vías férreas o carreteras pavimentadas para más de tres mil doscientos kilómetros en ninguna dirección desde el estrecho. Una carretera por la región tendría que atravesar cadenas montañosas, tundra, acantilados y bosques de pinos.


text: La carretera principal de conexión más cercana es la Autopista de Kolimá , que actualmente se encuentra en mal estado y atraviesa pasos de alta montaña.Sin embargo, para 2021 se construirá una carretera que unirá Ola y Uelen, a escasos 1000 kilómetros del Estrecho.


text: En el lado americano, probablemente unos mil doscientos kilómetros (750 millas) de carreteras o vías férreas tendrían que construirse alrededor de Norton Sound, a través de un paso a lo largo del río Unalakleet, y a lo largo del río Yukon para conectar a Ruta de Alaska 2 o Carretera Panamericana en otras palabras, una ruta similar a ala de Iditarod. El gobierno del estado de Alaska ha propuesto un proyecto para conectar Nome (160 km desde el estrecho) al resto del continente por una carretera pavimentada (parte de Ruta de Alaska 2) aunque su costo muy elevado (de $2.3 a $2.7 mil millones, unos $3 millones por kilómetro) ha impedido la construcción.


text: En el 2016 se amplió la red vial de Alaska hacia Tanana construyendo una sencilla carretera de ochenta kilómetros.


text: El enlace "TKM-World Link" (ruso: ТрансКонтинентальная магистраль, : Transcontinental Railway) también llamado "ICL-World Link" es un enlace planeado de 6.000 kilómetros entre Siberia y Alaska que proporcionará petróleo, gas natural, electricidad y pasajeros de ferrocarril a los Estados Unidos desde Rusia. Propuesto en 2007, el plan incluye previsiones para construir un túnel de 103 kilómetros bajo el Estrecho de Bering que, de ser completado, se convertiría en el túnel más largo del mundo. El túnel formaría parte de un ferrocarril que uniría Yakutsk, la capital de la república rusa de Yakutia, y Komsomolsk del Amur, en el lejano oriente , con la costa occidental de Alaska. Se estima que el estrecho de Bering costaría entre $10 billones a $12 billones, mientras que todo el proyecto costaría $65 billones.


text: En 2008, el primer ministro ruso Vladímir Putin aprobó el proyecto de construcción de un ferrocarril en el área del estrecho de Bering, como parte del plan de desarrollo hasta 2030. El túnel de más de 100 kilómetros (60 millas) recorrería el Estrecho de Bering entre Chukotka, en el lejano oriente ruso, y Alaska. El costo estimado sería de US$66 billones.


text: A finales de agosto de 2011, en una conferencia en Yakutsk, en el este de Rusia, el plan fue respaldado por algunos de los principales funcionarios del presidente Dmitry Medvedev incluyendo a Aleksandr Levinthal, el representante federal adjunto para el Lejano Oriente ruso. Los partidarios de la idea creían que sería una forma más rápida, segura y barata de transportar mercancías por todo el mundo que los barcos portacontenedores. Ellos estimaron que podría transportar cerca del 3% de la carga mundial y generar alrededor de US$7 billones al año. Poco después, el gobierno ruso aprobó la construcción de la vía férrea y túnel Siberia-Alaska, de $65 billones de dólares, a través del Estrecho de Bering.


text: Otros observadores dudan de que esto sea más barato que los porta-contenedores, teniendo en cuenta que el coste del transporte ferroviario de China a Europa por ferrocarril es más elevado que el de los porta-contenedores (excepto en el caso de las cargas costosas, en las que el plazo de entrega es importante).


text: En 2013 se completó el ferrocarril Amur Yakutsk Mainline que une Yakutsk (2,800 km del estrecho) con el ferrocarril Transiberiano. Sin embargo, este ferrocarril está destinado al transporte de mercancías y es demasiado curvo para los trenes de pasajeros de alta velocidad. Los proyectos futuros incluyen la línea principal Lena-Kamchatka (ru) y la autopista Kolyma-Anadyr (ru). La carretera Kolyma-Anadyr ha comenzado la construcción, pero será un estrecho camino de grava.


text: En 2014, surgieron informes de que China está considerando la construcción de un tren bala "China-Rusia-Canadá-América" a 350 km/h que incluiría un túnel submarino de 200 kilómetros de longitud que atravesaría el Estrecho de Bering y permitiría a los pasajeros viajar entre Estados Unidos y China en unos dos días.


text: Aunque la prensa sigue siendo escéptica respecto al proyecto, el diario estatal chino "China Daily" afirma que China posee la tecnología necesaria para construir un túnel submarino que conectaría la provincia china de Fujian con Taiwán. Se desconoce quién se espera que pague por la construcción, aunque China tiene en otros proyectos ofrecidos para construirlos y financiarlos, y espera que el dinero se recupere al final a través de honorarios o alquileres. También se habla de lo poco práctico y eficiente del transporte de pasajeros en viajes de tres días en tren, existiendo la posibilidad de utilizar vuelos directos de alrededor de 12 horas entre China y EE. UU., quedando la utilidad del tren relegada al transporte de mercancías, el cuál sí sería más rápido que por barco.


text: En 2015 se informó de otra posible colaboración entre China y Rusia que formará parte del Desarrollo del cinturón euroasiático; un corredor de transporte a través de Siberia que también incluiría un puente vial con gasoductos y oleoductos entre el punto más oriental de Siberia y el punto más occidental de Alaska. Uniría Londres y Nueva York por ferrocarril y autopistas a través de Rusia si se llevara a cabo.


text: La Iniciativa del Cinturón y Ruta de la Seda tiene planes similares, por lo que el proyecto funcionaría en paralelo para ambos países.


title: Gótico isabelino

text: El Gótico de los Reyes Católicos, también llamado el Gótico hispano-flamenco (término obsoleto), es un estilo propio de la Corona de Castilla durante el reinado de los Reyes Católicos, que representa la transición entre el gótico final y el renacimiento inicial, con características estructurales góticas originales e influencias decorativas de la tradición castellana, del mudéjar, de Flandes y, en menor medida, de Italia. La consideración o no del hispano-flamenco como un estilo gótico o renacentista, como un estilo ecléctico, o como una fase dentro del más genérico plateresco, es una cuestión debatida por la historiografía del arte y aún no resuelta.


title: Gótico isabelino

text: El estilo isabelino introduce varios elementos estructurales, de influencia castellana y flamenca, especialmente en las formas flamígeras, por la gran llegada de arquitectos flamencos como Hanequin de Bruselas o Juan de Colonia (Hans von Köln). En casos muy concretos, se mezcla esta nueva influencia flamígera con la artesanía, técnicas, motivos y habilidades mudéjares, aunque sería exacerbado decir que este influenció toda la arquitectura del periodo. Muchos de los edificios que se construyeron en este estilo fueron encargos de los Reyes Católicos o bien estuvieron de algún modo patrocinados por ellos. Paralelamente se desarrolla en Portugal un arte muy similar denominado manuelino. Como característica más evidente está el predominio de los motivos heráldicos y epigráficos; especialmente los símbolos de el yugo y las flechas y la granada, que hacen referencia a los monarcas. También es característico de este periodo la ornamentación con bolas.


title: Gótico isabelino

text: Las referencias a la Antigüedad clásica en España apenas son algo más que elementos literarios, al contrario que en Italia, donde la presencia de edificios romanos era mucho más abundante y lo "gótico" se había recibido de una forma muy adaptada al gusto "clasicista" local. Hasta la década de 1530 y aún después en la arquitectura española no terminó de imponerse "lo romano" a "lo moderno". El uso de estos términos se refería, en la intención de los que los usaban, a cosas diferentes a lo que hoy podría pensarse: "lo romano" era el estilo del renacimiento clasicista, emocional, ampuloso e italianizante; mientras que "lo moderno" era para ellos el gótico, que era estructuralmente racional, pragmático y eficaz, más propiamente español.


title: Gótico isabelino

text: Independientemente de las características ambientales de los interiores, el gótico proporciona unos sistemas estructurales de conocida y probada eficacia. Y precisamente el estilo gótico había tenido en la Península una serie de modificaciones debidas a la tradición local: ventanas más pequeñas que las conocidas en el sistema constructivo y pendientes de cubierta mucho menos pronunciadas, y también cubiertas planas, lo que hizo un estilo realmente original, pero que aprovechaba eficientemente el sistema constructivo gótico. Por otro lado, muy probablemente los arquitectos españoles habituados al gótico, considerasen con cierto desprecio las bóvedas bajas, los gruesos muros, los tirantes metálicos vistos y refuerzos, entre otros artificios, que los arquitectos italianos se veían obligados a colocar en los arcos para resistir los empujes horizontales, cuando en el sistema constructivo «gótico» con su bien conocida distribución de fuerzas y pesos, simplemente no eran necesarios o había métodos que evitaban la «trampa» de estas ayudas arquitectónicas.


title: Gótico isabelino

text: A partir de la herencia gótica se empieza a gestar un estilo propio en el que se incluyen elementos más modernos. Quizá el ejemplo más representativo de este estilo sea el Monasterio de San Juan de los Reyes de Toledo, en que la idea gótica está más en el sistema constructivo que en la concepción del espacio interior, la relación se hace más lejana con el gótico original francés, pero más cercana a una tradición constructiva local.


title: Gótico isabelino

text: Por ello en la Península, cuya tradición de arquitectura clásica está temporalmente muy alejada, (tras siglos de construcción gótica) prefiere, por tradición propia, por racionalidad constructiva, el sistema gótico, que en el tiempo va evolucionando en la decoración de los edificios, correspondiendo con la riqueza general del país en el momento, hacia un recargamiento, lo que se ha dado en llamar plateresco, mientras se mantienen intactos varios elementos del gótico, especialmente el modo de llevar las cargas de las bóvedas a los pilares (no a los muros, como en el románico), apuntalándolos con los arbotantes, con sus chapiteles y muchas veces, los arcos apuntados.


title: Gótico isabelino

text: El término Hispano-flamenco fue utilizado en el pasado de manera muy extensa por la comunidad debido a la supuesta influencia mudéjar en todas las construcciones del Gótico Tardío en España. Este pensamiento es incorrecto, y está confirmado por estudios posteriores que no fue así, y que ,al contrario, no influyeron en edificios más allá de ciertos casos.


title: Gótico isabelino

text: Libro didáctico de la UNED: ``Las Artes en la Edad del Gótico´´, de Esther Alegre Carvajal, Inés Monteira Arias y Antonio Perla de las Parras.


title: Puntero (informática)

text: En ciencias de la computación, un puntero es un objeto del lenguaje de programación, cuyo valor se refiere a (o "apunta a") otro valor almacenado en otra parte de la memoria del ordenador utilizando su dirección. Un puntero "referencia" a una ubicación en memoria, y a la obtención del valor almacenado en esa ubicación se la conoce como "desreferenciación" del puntero. A modo de analogía, un número de página en el índice de un libro podría considerarse un puntero a la página correspondiente; desreferenciar un puntero sería como ir a la página con el número de página especificada en el índice.


title: Puntero (informática)

text: Los punteros a datos mejoran significativamente el rendimiento de las operaciones repetitivas tales como cadenas de desplazamiento, tablas de búsqueda, tablas de control y estructuras árbol. En particular, muchas veces es mucho más barato en tiempo y espacio copiar y des referenciar punteros que copiar y acceder a los datos a los cuales apunta el puntero.


title: Puntero (informática)

text: Los punteros también se utilizan para mantener las direcciones de los puntos de entrada para las subrutinas para llamadas en programación por procedimientos y enlaces para vincular a las bibliotecas de enlace dinámico (DLL) en tiempo de ejecución. En la programación orientada a objetos, los punteros a funciones se utilizan para métodos de unión, muchas veces utilizando lo que se llama tablas de métodos virtuales.


title: Puntero (informática)

text: Un puntero es una implementación más concreta y simple del tipo de datos de "referencia" más abstracto. Varios lenguajes soportan algún tipo de puntero, aunque algunos tengan más restricciones en su uso que otros. Mientras que se utilice un "puntero" para referirse a referencias en general, se aplica más propiamente a las estructuras de datos cuya interfaz permita explícitamente que el puntero sea manipulado (aritméticamente vía aritmética de punteros) como una dirección de memoria, en oposición a una cookie u opción dónde esto no sea posible. Debido a que los punteros permiten tanto proteger como permitir el acceso a direcciones de memoria, hay riesgos asociados con su uso, sobre todo en este último caso. Generalmente, los punteros primitivos son almacenados en un formato similar a un entero; no obstante, intentar eliminar la referencia o "mirar hacia arriba" hacia un puntero cuyo valor no fue nunca una dirección de memoria válida conllevaría a provocar que un programa se bloquee. Para aliviar este potencial problema, como una cuestión de seguridad de tipos, los punteros son considerados un tipo separado parametrizado por un tipo de datos que apuntan a, incluso si la representación subyacente es un número entero. También se pueden tomar otras medidas (como la validación y comprobación de los límites, para verificar el contenido de la variable de puntero contenga un valor que es a la vez una dirección de memoria válida y dentro del rango numérico que el procesador sea capaz de abordar).


title: Puntero (informática)

text: Se le atribuye a Harold Lawson la invención del puntero en 1964. En 2000, Lawson fue presentado el Premio Pionero de Informática por la IEEE "[por la invención de la variable puntero y la introducción de este concepto en PL /I, proporcionando así, por primera vez, la capacidad de tratar con flexibilidad las listas enlazadas en un lenguaje de alto nivel de propósito general". Según el Diccionario inglés de Oxford, la "palabra" "puntero" apareció impresa por primera vez como un "puntero de pila" en un memorando técnico de la "System Development Corporation" (Corporación de Desarrollo de Sistemas).


title: Puntero (informática)

text: Un "dato primitivo" (o simplemente primitivo) es cualquier dato que puede ser leído o escrito en la memoria del ordenador usando un acceso de memoria (por ejemplo, tanto un "byte" como una palabra son primitivas).


title: Puntero (informática)

text: Un "agregado de datos" (o simplemente "agregado") es un grupo de primitivos que son lógicamente contiguos en la memoria y que son vistos colectivamente como un dato (por ejemplo, un agregado podría ser 3 bytes lógicamente contiguos, los valores de los cuales representan las 3 coordenadas de un punto en el espacio). Cuando un agregado está compuesto enteramente del mismo tipo de primitiva, dicho agregado puede denominar matriz; en cierto sentido, una palabra multi-byte primitiva es una matriz de bytes, y algunos programas de usan palabras de esta manera.


title: Puntero (informática)

text: Un "puntero de memoria" (o simplemente "puntero") es un valor primitivo del cual está destinado a ser utilizado como una dirección de memoria; se dice que un puntero apunta a una dirección de memoria. También se dice que un "puntero apunta a un dato [en memoria]" cuando el valor del puntero es la dirección de memoria de referencia.


title: Puntero (informática)

text: Más en general, un puntero es un tipo de referencia, y se dice que un "puntero referencia a un dato almacenado en algún lugar de la memoria"; para obtener ese dato se "desreferencia el puntero". La característica que separa punteros de otros tipos de referencia es que el valor de un puntero está destinado a ser interpretado como una dirección de memoria, que es un concepto bastante de bajo nivel.


title: Puntero (informática)

text: Las referencias sirven como un nivel de indirección: El valor de un puntero determina que la dirección de memoria (es decir, cual dato) está siendo utilizado en un cálculo. Debido a que la indirección es un aspecto fundamental de los algoritmos, generalmente los punteros son expresados como un tipo de datos fundamental en lenguajes de programación; en forma de lenguajes de programación estáticos (o fuertemente) tipados, el tipo de un puntero determina el tipo de dato al que apunta el puntero.


title: Puntero (informática)

text: Cuando se configuren estructuras de datos como listas, colas y árboles, es necesario contar con indicadores para ayudar a controlar cómo se implementa y controla la estructura. Ejemplos típicos de punteros son los de inicio, los punteros finales y los punteros de pila. Estos indicadores pueden ser o bien absolutos (dirección física real o una dirección virtual en la memoria virtual) o relativos (un desplazamiento desde una dirección inicial absoluta ("base") que suele utilizar menos bits que una dirección completa, pero por lo general requieren una operación aritmética adicional para resolverse).


title: Puntero (informática)

text: Las direcciones relativas son una forma de segmentación de memoria manual, y comparten muchas de sus ventajas y desventajas. Una compensación de dos bytes, que contiene un entero sin signo de 16 bits, se puede utilizar para proporcionar direccionamiento relativo de hasta 64 kilobytes de una estructura de datos. Esto se puede extender fácilmente a 128K, 256K o 512K si la dirección apuntada se ve obligada a alinearse - a mitad de palabras, palabra o doble palabra (pero, lo que requiere una operación de "desviación a la izquierda" a nivel de bits para 1, 2 o 3 bits-con el fin de ajustar el desplazamiento por un factor de 2, 4 u 8, antes de su adición a la dirección de base). Sin embargo, por lo general esos planos tienen un montón de problemas, y por conveniencia para el programador son preferibles las direcciones absolutas del programador (y subyacente a esa, un "espacio de dirección plano").


title: Puntero (informática)

text: Un desplazamiento de un byte, tal como el valor ASCII hexadecimal de un carácter (por ejemplo, X'29') se puede utilizar para apuntar a un valor alternativo entero (o índice) en una matriz (por ejemplo, X'01'). De esta manera, los caracteres pueden ser traducidos de manera muy eficiente partiendo de datos brutos, a un índice secuencial utilizable y luego a una dirección absoluta sin utilizar una tabla de búsqueda.


title: Puntero (informática)

text: Por lo general, las tablas de control, que se utilizan para controlar el flujo del programa hacen un amplio uso de punteros. Los punteros, normalmente integrados en una entrada de la tabla, pueden, por ejemplo, ser usados para sostener los puntos de entrada a subrutinas a ser ejecutados, basado en ciertas condiciones definidas en la misma entrada de la tabla. Sin embargo, los indicadores pueden ser simples índices de otros cuadros distintos, pero relacionados, que comprenden un conjunto de las direcciones reales o direcciones propias (dependiendo de las construcciones disponibles del lenguaje de programación). También pueden utilizarse para señalar (retrocediendo) a entradas de la tabla anterior (como en el procesamiento de bucle) o avanzar para pasar algunas entradas de la tabla (como en un switch o salida "prematura" de un bucle). A este último efecto, el "puntero" simplemente puede ser el número de entrada de la tabla en sí y puede pasar a ser una dirección actual usando aritmética simple.


title: Puntero (informática)

text: Los punteros son una abstracción muy delgada en la parte superior de las capacidades de direccionamiento ofrecidas por la mayoría de las "arquitecturas" modernas. En el esquema más simple, una dirección, o un índice numérico, se asigna a cada unidad de memoria en el sistema, donde la unidad es típicamente un byte o una palabra - dependiendo de si la arquitectura es direccionable por byte o direccionable por palabra - transformando eficazmente toda la memoria en una matriz muy grande. Entonces, si tenemos una dirección, el sistema provee una operación para recuperar el valor almacenado en la unidad de memoria en esa dirección (por lo general la utilización de registros de propósito general de la máquina).


title: Puntero (informática)

text: En el caso usual, un puntero es lo suficientemente grande como para contener más direcciones que no sean unidades de memoria en el sistema. Esto introduce la posibilidad de que un programa puede intentar acceder a una dirección que corresponde a ninguna unidad de memoria, ya sea porque no hay suficiente memoria instalada (es decir, más allá del rango de memoria disponible) o porque la arquitectura no soporta dichas direcciones. En el primer caso, en ciertas plataformas como la arquitectura x86 de Intel, se llama un fallo de segmentación (violación de segmento). El segundo caso es posible en la actual aplicación de AMD64, donde los punteros son de 64 bits de largo y direcciones solo se extienden a 48 bits. Allí, punteros deben ajustarse a ciertas normas canónicas (direcciones), así que si un puntero no canónica se eliminan las referencias, el procesador plantea un error de protección general.


title: Puntero (informática)

text: Por otra parte, algunos sistemas tienen más unidades de memoria que no son direcciones. En este caso, se emplea un esquema más complejo, tal como la segmentación de memoria o de paginación a utilizar diferentes partes de la memoria en diferentes momentos. Las últimas encarnaciones de la arquitectura x86 soportan hasta 36 bits de direcciones de memoria física, que fueron asignadas al espacio de direcciones lineal de 32 bits usando un mecanismo PAE de paginación. Así, solo el 1/16 de la posible memoria total puede ser accedida a la vez. Otro ejemplo de la misma familia de ordenadores estaba el modo protegido de 16 bits del procesador 80286, que, sin embargo, soportaba solamente 16 MiB de memoria física, pudiendo acceso a un máximo de 1 GiB de memoria virtual, pero la combinación de dirección de 16 bits y el segmento de registros hizo acceder a más de 64 KiB en una estructura de datos engorroso. Algunas restricciones de la aritmética del puntero ANSI pudieron haberse debido a los modelos de memoria segmentadas de esta familia de procesadores.


title: Puntero (informática)

text: Con el fin de proporcionar una interfaz consistente, algunas arquitecturas proporcionan E/S mapeada en memoria, lo que permite a algunas direcciones que se refieren a las unidades de memoria, mientras que otros se refieren a los registros de dispositivos de otros dispositivos en el ordenador. Hay conceptos análogos tales como desplazamientos de archivo, los índices de matriz, y las referencias a objetos remotos que sirven algunos de los mismos propósitos que las direcciones de otros tipos de objetos.


title: Puntero (informática)

text: Los punteros son compatibles directamente sin restricciones en lenguajes como PL/1, C, C++, Pascal, y la mayoría de los lenguajes ensambladores. Se utilizan principalmente para la construcción de referencias, que a su vez son fundamentales para la construcción de casi todas las estructuras de datos, así como para pasar datos entre las diversas partes de un programa.


title: Puntero (informática)

text: En los lenguajes de programación funcionales que dependen en gran medida de las listas, los punteros y referencias son gestionados de manera abstracta por el lenguaje utilizando construcciones internas como const.


title: Puntero (informática)

text: Cuando se trata de matrices, la crítica operación de búsqueda suele implicar un cálculo de dirección etapa llamada que implica la construcción de un puntero al elemento de datos deseado en la matriz. Si los elementos de datos en la matriz tienen longitudes que son divisibles por potencias de dos, esta aritmética es por lo general un poco más eficiente. El relleno generalmente es usado como un mecanismo para asegurar que este sea el caso, a pesar del aumento de los requerimientos de memoria. En otras estructuras de datos, tales como las listas enlazadas, los punteros se utilizan como referencias para vincular de forma explícita una sola pieza de la estructura a otra.


title: Puntero (informática)

text: Los punteros se utilizan para pasar parámetros por referencia. Esto es útil si el programador quiere modificaciones de una función a un parámetro sea visible para llamador de la función de la función. Esto también es útil para devolver varios valores de una función.


title: Puntero (informática)

text: Los punteros también se puede utilizar para asignar y desasignar en la memoria variables dinámicas y matrices. Ya que muchas veces una variable puede volverse redundante después de que haya cumplido su objetivo, que resulta en una pérdida de la memoria mantenerla, en consecuencia es una buena práctica para desasignarla cuando ya no se necesita, utilizando la referencia de puntero original. El no hacerlo puede resultar en una pérdida de memoria (donde la memoria libre disponible va disminuyendo gradualmente, o en casos severos rápidamente, a causa de una acumulación de numerosos bloques de memoria redundantes).


title: Puntero (informática)

text: Debido a que el lenguaje C no especifica una inicialización implícita para los objetos de duración automática de almacenamiento, frecuentemente se debe prestar atención para asegurarse de que la dirección a la que codice_1 puntea es válida; por eso a veces se sugiere que un puntero pueda ser explícitamente inicializado al valor de puntero nulo, que es tradicionalmente especificado en C con la macro estandarizado codice_6


title: Puntero (informática)

text: Desreferenciar un puntero nulo en C produce un comportamiento indefinido, que podría ser catastrófico. Sin embargo, la mayoría de las implementaciones , simplemente detienen la ejecución del programa en cuestión, usualmente con un fallo de segmentación.


title: Puntero (informática)

text: Sin embargo, punteros inicializados podría obstaculizar innecesariamente el análisis del programa, ocultando de ese modo los bugs.


title: Puntero (informática)

text: En cualquier caso, una vez que un puntero ha sido declarado, el siguiente paso lógico es que se apunte a algo:


title: Puntero (informática)

text: Esto asigna el valor de la dirección de codice_7 a ptr. Por ejemplo, si codice_7 está almacenado en la ubicación de memoria de 0x8130 entonces el valor de codice_1 será 0x8130 después de la asignación. Para eliminar la referencia al puntero, se utiliza de nuevo el asterisco:


title: Puntero (informática)

text: Esto significa tomar el contenido de codice_1 (que es 0x8130), "localizar" la dirección en memoria y establecer su valor en 8. Si, más tarde, se accede de nuevo, su nuevo valor será 8.


title: Puntero (informática)

text: Supongamos que codice_7 se localiza en la dirección 0x8130 en memoria y codice_1 en 0x8134; también asume de que se trata de un equipo de 32 bits de tal manera que un codice_2 tiene un ancho de 32 bits. Lo que sigue es lo que estaría en la memoria después de que se ejecuta el siguiente fragmento de código:


title: Puntero (informática)

text: la computadora tendrá el contenido de ptr (que es 0x8130), 'localizado' esa dirección, y asignar 8 a esa ubicación produciendo la siguiente memoria:


title: Puntero (informática)

text: Claramente, el acceso a codice_7 producirá el valor de 8 porque la instrucción anterior modificó el contenido de codice_7 por medio del puntero codice_1.


title: Puntero (informática)

text: En C, la indización de matrices se define formalmente en términos de punteros aritméticos, es decir, la especificación del lenguaje requiere que codice_20 sea equivalente a codice_21. Así, en C, las matrices pueden ser consideradas como punteros a áreas de memoria consecutivas (sin espacios vacíos), [8] y la sintaxis para acceder a las matrices es idéntica a la cual se puede utilizar para desreferenciar punteros. Por ejemplo, una matriz codice_22 puede ser declarada y utilizada de la siguiente manera:


title: Puntero (informática)

text: Esto asigna un bloque de cinco enteros y nombres de la matriz por bloques, que actúa como un puntero al bloque. Otro uso común de los punteros es para que apunte a la memoria asignada dinámicamente desde malloc que devuelve un bloque consecutivo de memoria de no menos que el tamaño solicitado que se puede utilizar como una matriz.


title: Puntero (informática)

text: Aunque la mayoría de los operadores sobre matrices y punteros sean equivalentes, es importante tener en cuenta que el operador codice_23 será diferente. En este ejemplo, sizeof (array) evaluará a codice_24 (el tamaño de la matriz), mientras que codice_25 evaluará sizeof codice_26, el tamaño del propio puntero.


title: Puntero (informática)

text: Si se asume que codice_22 se encuentra en la memoria a partir de la dirección 0x1000 de una máquina little endian de 32 bits entonces la memoria contendrá lo siguiente (los valores se encuentran en hexadecimal, así como las direcciones):


title: Puntero (informática)

text: Aquí están representados cinco enteros: 2, 4, 3, 1 y 5. Estos cinco enteros ocupan 32 bits (4 bytes) cada uno con el byte menos significativo que se almacena primero (esto es una arquitectura de CPU little endian) y se almacenan de forma consecutiva comenzando en la dirección 0x1000.


title: Puntero (informática)

text: Por ejemplo codice_38 es sinónimo de *(array+ 3), es decir, codice_39, que dice "eliminar la referencia al valor almacenado en codice_40", en este caso codice_41.


title: Puntero (informática)

text: Nótese que esta definición puntero-recursivo es esencialmente la misma que la definición de referencia-recursiva del lenguaje de programación Haskell:


title: Puntero (informática)

text: codice_42 es la lista vacía y codice_43 es una cons cell de un tipo codice_7 con otro enlace también de tipo codice_7.


title: Puntero (informática)

text: Sin embargo, la definición de referencias es de tipo comprobado y no utiliza los valores de señal potencialmente confusos. Por esta razón, en C, las estructuras de datos normalmente se tratan a través de funciones contenedor, que son cuidadosamente verificadas para su corrección.


title: Puntero (informática)

text: Los punteros se pueden usar para pasar variables por su dirección, lo que permite cambiar su valor. A modo de ejemplo, se considera el siguiente código en C:


title: Puntero (informática)

text: Los punteros se utilizan para almacenar y administrar las direcciones de los bloques de memoria asignados dinámicamente. Dichos bloques se utilizan para almacenar objetos o conjuntos de objetos de datos. Los lenguajes más estructurados y orientados a objetos proporcionan un área de memoria, llamada el montón o tienda libre, de la que objetos dinámicamente asignados.


title: Puntero (informática)

text: El código de ejemplo C siguiente ilustra cómo se asignan dinámicamente objetos de estructura y referencia. La biblioteca C estándar proporciona la función codice_46 para asignar bloques de memoria desde el montón. Se necesita el tamaño de un objeto para asignarlo como parámetro y devolver un puntero a un bloque recién asignado de memoria adecuado para almacenar el objeto, o se devuelve un puntero nulo si la asignación falla.


title: Puntero (informática)

text: El código siguiente muestra cómo se desasignan dinámicamente objetos de memoria, es decir, retorna al montón o tienda libre. La biblioteca C estándar proporciona la función codice_47 para cancelar la asignación de un bloque de memoria previamente asignado y retornar de nuevo al montón.


title: Puntero (informática)

text: En algunas arquitecturas de computación, los punteros pueden ser utilizados para manipular directamente de memoria o dispositivos asignados a la memoria.


title: Puntero (informática)

text: La asignación direcciones a los punteros es una herramienta invaluable en la programación de microcontroladores. A continuación se muestra un simple ejemplo de declaración de un puntero de tipo int y la inicialización a una dirección hexadecimal en este ejemplo el constante codice_48:


title: Puntero (informática)

text: A mediados de los años 80, usar la BIOS para acceder a las capacidades de video de PC era lento. Las aplicaciones que se encontraban en pantalla intensiva normalmente se utiliza para acceder a la memoria de vídeo CGA directamente mediante colada las constantes hexadecimales 0xb8000 a un puntero a un array de 80 valores int de 16 bits sin signo. Cada valor consistía en un código ASCII en el byte bajo y un color en el byte alto. Por lo tanto, para poner la letra 'A' en la línea 5, columna 2 blanco sobre azul luminoso, uno podría escribir código como el siguiente:


title: Puntero (informática)

text: En muchos lenguajes, los punteros tienen la restricción adicional de que el objeto que apuntan tiene un tipo específico. Por ejemplo, un indicador puede ser declarado para apuntar a un número entero; será el lenguaje el que trate de evitar que el programador apunte a objetos que no fuesen números enteros, tales como números de coma flotante, eliminando algunas errores.


title: Puntero (informática)

text: codice_49 sería un puntero entero y codice_50 sería un puntero char. Lo siguiente daría una advertencia del compilador de "asignación desde un tipo de puntero" bajo GCC


title: Puntero (informática)

text: porque codice_49 y codice_50 fueron declarados con diferentes tipos. Para suprimir la advertencia del compilador, debe quedar explícita de que realmente se desea hacer la cesión por encasillamiento.


title: Puntero (informática)

text: Un proyecto de la norma C estándar de 2005 requiere que echando un puntero derivado de un tipo a uno de otro tipo debía mantener la corrección de alineación para ambos tipos (6.3.2.3 Punteros, par 7):


title: Puntero (informática)

text: En lenguajes que permiten la aritmética de punteros, dicha aritmética en punteros tiene en cuenta el tamaño del tipo. Por ejemplo, la adición de un número entero a un puntero produce otro puntero que apunta a una dirección que es superior en número de veces que el tamaño del tipo. Esto nos permite calcular fácilmente la dirección de elementos de una matriz de un tipo determinado, como se demostró en el ejemplo matrices C descripto arriba. Cuando un puntero de un tipo se convierte en otro tipo de un tamaño diferente, el programador debe esperar que el puntero aritmético se calcule de manera diferente. En C, por ejemplo, si la matriz codice_49 comienza a 0x2000 y codice_56 es 4 bytes mientras que codice_57 es de 1 byte, entonces codice_58 apuntará a 0x2004 pero codice_59 apuntará a 0x2001. Entre otros riesgos de la fundición se incluyen la pérdida de datos, cuando los datos "anchos" se escribe en ubicaciones "estrechas" (por ejemplo, codice_60), se obtienen resultados inesperados cuando hay valores de desplazamiento de bits, y problemas de comparación, sobre todo entre valores con signo vs valores sin signo.


title: Puntero (informática)

text: Aunque por lo general sea imposible determinar en tiempo de compilación que arroja son seguros, algunos lenguajes almacenan el tipo de información en tiempo de ejecución que puede ser utilizado para confirmar que estos peligrosos moldes son válidos en tiempo de ejecución. Otros lenguajes simplemente aceptan una aproximación conservadora de moldes seguros, o ninguno en absoluto.


title: Puntero (informática)

text: Como un puntero permite que un programa intente acceder a un objeto que puede no estar definido, dichos punteros pueden ser el origen de una variedad de errores de programación. Sin embargo, la utilidad de los punteros es tan grande que puede ser difícil realizar tareas de programación sin ellos. En consecuencia, muchos lenguajes han creado construcciones diseñadas para proporcionar algunas de las características útiles de los punteros sin algunas de sus trampas, también denominadas algunas veces peligros de punteros. En este contexto, los punteros que se dirigen directamente a la memoria (como se usa en este artículo) se conocen como punteros crudos o sin procesar, en contraste con punteros inteligentes u otras variantes.


title: Puntero (informática)

text: Uno de los mayores problemas con los punteros es que al poderse manipular directamente como un número, se pueden hacer que este apunte a direcciones no utilizadas o a datos que se está utilizando para otros fines. Muchos lenguajes, incluyendo lenguajes de programación funcionales y los últimos lenguajes imperativos como Java, reemplazan los punteros con un tipo más opaco de referencia, típicamente referido simplemente como "referencia", que solo puede ser usado para referirse a los objetos y no manipula a los números, previniendo este tipo de error. La indexación de una matriz se trata como un caso especial.


title: Puntero (informática)

text: Un puntero que no tenga ninguna dirección asignada al mismo se denomina puntero salvaje. Cualquier intento de utilizar estos punteros no inicializados puede causar un comportamiento inesperado, ya sea porque el valor inicial no es una dirección válida, o porque su uso puede dañar otras partes del programa. El resultado suele ser un fallo de segmentación, violación de almacenamiento o rama natural (si se utiliza como un puntero de función o de dirección de rama).


title: Puntero (informática)

text: En sistemas con asignación de memoria explícita, es posible crear un puntero de referencia colgante para des-asignar la dirección de memoria que apunta dentro. Este tipo de puntero es peligroso y sutil, ya una región de memoria des-asignada puede contener los mismos datos como lo hizo antes de que se cancele la asignación, pero puede ser reasignado a continuación y se sobrescriben con código ajeno, desconocido para el código anterior. Los lenguajes con recolector de basura previenen este tipo de error porque des afectación se realiza automáticamente cuando no hay más referencias en el alcance.


title: Puntero (informática)

text: Algunos lenguajes, como C++, soportan punteros inteligentes, que utilizan una forma simple de conteo de referencias con el fin de ayudar a la asignación de un registro de la memoria dinámica, además de actuar como referencia. En la ausencia de ciclos de referencia, donde un objeto se auto refiere indirectamente mediante una secuencia de punteros inteligentes, éstos eliminan la posibilidad de punteros colgantes y pérdidas de memoria. Las cadenas en Delphi soportan, de forma nativa, recuento de referencias.


title: Puntero (informática)

text: Un puntero nulo tiene un valor reservado para indicar que el puntero no se refiere a un objeto válido. Los punteros nulos se utilizan habitualmente para representar las condiciones tales como el final de una lista de longitud desconocida o el fracaso para llevar a cabo algún tipo de acción, lo que el uso de punteros nulos se puede comparar con los tipos que aceptan valores "NULL" y el valor de nada en un tipo de opción.


title: Puntero (informática)

text: Frecuentemente, los punteros nulos se consideran similares a los valores nulos en las bases de datos relacionales, pero tienen una semántica algo diferente. En la mayoría de los lenguajes de programación, un puntero nulo significa "ningún valor", mientras que en una base de datos relacional, un valor nulo significa "valor desconocido". Esto conduce a importantes diferencias en la práctica: en la mayoría de los lenguajes de programación consideran iguales dos punteros nulos se, pero no lo son dos valores nulos en las bases de datos relacionales (no se sabe si son iguales, ya que representan valores desconocidos).


title: Puntero (informática)

text: En algunos entornos de lenguaje de programación (al menos, por ejemplo, una implementación de Lisp propietaria), el valor utilizado como puntero nulo (llamado codice_61 en Lisp) puede, en realidad, ser un puntero a un bloque de datos internos de utilidad para la aplicación (pero no accesible explícitamente desde los programas de usuario), permitiendo así que el mismo registro sea utilizado como una constante útil y una forma rápida de acceder a partes internas de aplicación. Esto se conoce como vector codice_62 (‘nulo’).


title: Puntero (informática)

text: En C, dos punteros nulos de cualquier tipo están garantidos para comparar iguales tipo de datos El macro codice_63 es una implementación definida por una constante de puntero NULL, que en C99 se puede expresar portablemente como un valor entero codice_64 convertido implícita o explícitamente al tipo codice_65.


title: Puntero (informática)

text: Típicamente, desreferenciar el puntero NULL significa intentar leer o escribir en la memoria que no se asigna, esto desencadena un fallo de segmentación o violación de acceso. Esto puede representar en sí mismo, para el desarrollador, un fallo en el programa, o se transforma en una excepción que puede capturarse. Sin embargo, hay ciertas circunstancias en las que esto no es el caso. Por ejemplo, en modo en x86 real, la dirección 0000:0000 es legible y por lo general escribible, de ahí que la eliminación de referencias de puntero nulo sea una acción perfectamente válida pero, en general, no deseada que puede conducir a un comportamiento indefinido, pero no causa un crash en la aplicación. Además, tener en cuenta que hay ocasiones en que la desreferenciación NULL "es" intencional y bien definida, como por ejemplo el código del BIOS, escrito en C, para dispositivos x86 de 16 bits en modo real, puede escribir la IDT en la dirección física 0 de la máquina, desreferenciando al puntero a NULL para la escritura. También es posible que el compilador optimice desde lejos el puntero de dereferencia `NULL`, evitando un fallo de segmentación pero sin causar otro tipo de comportamiento no deseado.


title: Puntero (informática)

text: En C++, ya que el macro codice_63 fue heredado de C, tradicionalmente se prefere el literal entero para cero para representar una constante de puntero nulo. Sin embargo, C++11 ha introducido una constante codice_67 explícita que se utilizará en su lugar.


title: Puntero (informática)

text: No se debe confundir un puntero nulo con un puntero no inicializado: Un puntero nulo está garantizado para comparar desigual a cualquier puntero que apunta a un objeto válido. Sin embargo, en función del idioma y la aplicación, un puntero no inicializado tiene, o bien un valor indeterminado (al azar o sin sentido), o un valor específico que no tiene porqué ser necesariamente una especie de puntero nulo constante.


title: Puntero (informática)

text: que en 1965 inventó la referencia nula como parte del lenguaje Algol W, aunque, desde 1959, NIL hubiera existido en Lisp. En esa referencia de 2009 Hoare describe su invención como un "error de millones de dólares":


title: Puntero (informática)

text: Debido a que un puntero nulo no apunta a un objeto significativo, por lo general, (pero no siempre) intentar eliminar la referencia a un puntero nulo provoca un error en tiempo de ejecución o la inmediata caída del programa.


title: Puntero (informática)

text: En lenguajes con una arquitectura de etiquetado, posiblemente, un puntero nulo pueda ser reemplazado con una unión marcada que impone la manipulación explícita del caso excepcional, de hecho, un puntero nulo, posiblemente, pueda ser visto como un puntero etiquetado con una etiqueta computarizada.


title: Puntero (informática)

text: El término puntero "auto relativo" puede referirse a un puntero cuyo valor se interpreta como un desplazamiento desde la dirección del propio puntero, por lo que, si una estructura de datos, formula_1, tiene un elemento puntero auto relativo, formula_2, que apunta a una porción formula_1 de sí mismo, entonces formula_1 puede ser reubicado en la memoria sin tener que actualizar el valor de formula_2.


title: Puntero (informática)

text: La patente citada también utiliza el término puntero "auto relativo" para significar la misma cosa. Sin embargo, el significado de ese término se ha utilizado en otras formas:


title: Puntero (informática)

text: Un puntero base es un puntero cuyo valor es un desplazamiento desde el valor de otro puntero. Esto puede ser usado para almacenar y cargar los bloques de datos, asignando la dirección de comienzo del bloque al puntero base.


title: Puntero (informática)

text: En algunos lenguajes, un puntero puede hacer referencia a otro puntero, lo que requiere múltiples operaciones de des referenciación para llegar al valor original. Mientras que cada nivel de indirección puede añadir un costo de rendimiento, es a veces necesario para proporcionar un comportamiento correcto para estructuras de datos complejas. Por ejemplo, en C es típico definir una lista enlazada, en términos de un elemento que contiene un puntero al siguiente elemento de la lista:


title: Puntero (informática)

text: Esta aplicación utiliza un puntero al primer elemento de la lista como un sustituto para la lista completa. Si se añade un nuevo valor al principio de la lista, debe cambiarse la cabecera para que apunte al nuevo elemento. Dado que argumentos C siempre se pasan por valor, utilizando direccionamiento indirecto doble se permite la inserción de implementarse correctamente, y tiene el efecto secundario deseable de eliminar el código de casos especiales para hacer frente a las inserciones en la parte delantera de la lista:


title: Puntero (informática)

text: En este caso, si el valor de codice_71 es menor que el de la codice_72, se actualizará el llamador codice_72, correctamente a la dirección del nuevo ítem.


title: Puntero (informática)

text: Un ejemplo básico es en el argumento argv de la función principal en C (y C ++), que se da en el prototipo como codice_74 - esto es debido a que la variable codice_75 es en sí es un puntero a un arreglo de cadenas (un arreglo de arreglos), por lo que codice_76 es un puntero a la cadena 0 (por convención al nombre del programa), y codice_77 es el carácter 0 de la cadena 0.


title: Puntero (informática)

text: En algunos lenguajes, un puntero puede hacer referencia a código ejecutable, es decir, puede apuntar a una función, método o procedimiento. Un puntero a función almacenará la dirección de una función que sea invoca. Si bien este mecanismo se puede utilizar para llamar a funciones de forma dinámica, muchas veces es una técnica favorita de virus y otros autores de software malicioso.


title: Puntero (informática)

text: Un puntero salvaje es un puntero que no se ha sido inicializado (es decir, un puntero salvaje no ha tenido ninguna dirección asignada a él) y puede provocar un fallo en el programa o comportarse de manera extraña. En los lenguajes de programación Pascal o C, los punteros que no están específicamente inicializados pueden apuntar a direcciones impredecibles en la memoria.


title: Puntero (informática)

text: Aquí, codice_78 puede apuntar a cualquier lugar de la memoria, por lo que la realización de la tarea codice_79 puede corromper una zona desconocida de la memoria o provocar un fallo de segmentación.


title: Puntero (informática)

text: Es posible simular el comportamiento del puntero usando un índice a un matriz (normalmente unidimensional)


title: Puntero (informática)

text: Principalmente para lenguajes que no soportan punteros de manera explícita pero realizan soporte de matrices, la matriz se puede considerar y procesar como si fuera el rango de memoria completo (dentro del alcance de la matriz particular) y cualquier índice a ella puede considerarse como equivalente a un registro de propósito general en lenguaje ensamblador (que apunta a los bytes individuales pero cuyo valor real es relativo al comienzo de la matriz, no su dirección absoluta en memoria). Suponiendo que la matriz es, por ejemplo, una estructura de datos de caracteres contiguos de 16 megabytes, los bytes individuales (o una cadena de bytes contiguos dentro de la matriz) puede ser directamente dirigida y manipulada usando el nombre de la matriz con un entero sin signo de 31 bits como el puntero simulado (esto es bastante similar al ejemplo de "arreglos de C" mostrado anteriormente). La aritmética de punteros puede simularse mediante la adición o sustracción del índice, con una sobrecarga adicional mínima en comparación con la verdadera aritmética de punteros.


title: Puntero (informática)

text: Incluso es teóricamente posible, utilizando la técnica anterior, juntar con un simulador de juego de instrucciones adecuadas para simular "cualquier" código de máquina o el intermedio (bytescode) de cualquier procesador/lenguaje en otro lenguaje que no admite punteros en absoluto (por ejemplo Java / JavaScript). Para lograr esto, el código binario se puede cargar inicialmente en los bytes contiguos de la matriz para que el simulador "lea", interprete y se ejecute enteramente dentro de la memoria contenida de la misma matriz. Si es necesario, generalmente se puede activar comprobación de límites por el compilador, a los efectos de evitar por completo los problemas de desbordamiento de búfer (o si no, codificar a mano en el simulador).


title: Puntero (informática)

text: En programación es posible crear procedimientos, estructuras, variables, constantes entre otras cosas, cuando es ejecutada cada una de estas estructuras tiene una dirección en memoria, es conveniente conocer este tipo de información cuando se trabaja con lenguajes que soportan los punteros de manera no abstracta.


title: Puntero (informática)

text: Los punteros que apunten a estas estructuras de almacenamiento estarán dirigidos a los primeros miembros de cada estructura, unión o matriz.


title: Puntero (informática)

text: Las estructuras de datos reservan segmentos en memoria separados para cada miembro, esto significa que cada miembro tiene su propia dirección en memoria (su propio puntero).


title: Puntero (informática)

text: Podemos representar gráficamente una estructura de datos llamada "Estructura" de la siguiente manera:


title: Puntero (informática)

text: Como se puede ver, existen 3 métodos de tipo numérico en memoria llamados "A","B" y "C", los dos primeros métodos (A y B) son de tipo Byte y tienen reservado 1 byte cada uno en distintos segmentos en la memoria, por lo que tienen diferentes direcciones (0x01 y 0x02 en su respectivo orden).


title: Puntero (informática)

text: La dirección de memoria de la estructura en general es igual a la dirección de su primer miembro, la dirección de su segundo miembro es igual a la dirección de su primer miembro, mas su tamaño en bytes y la dirección del tercer miembro es igual a la dirección del primer miembro, más el tamaño de los dos miembros anteriores y así sucesivamente.


title: Puntero (informática)

text: La principal diferencia entre una unión y una estructura es la memoria utilizada, a diferencia de las estructuras, las uniones solo utilizan la cantidad de memoria de su miembro más grande, y todos los miembros comparten una única dirección en memoria.


title: Puntero (informática)

text: Los miembros "A" y "C" solo pueden contener valores entre 0 y 255 (Tipo Byte), el miembro "B" puede tener valores entre 0 y 4.294.967.295 (Tipo Entero), si el miembro "A" cambia su valor a 13, también lo hacen los miembros "B" y "C" (A,B y C son igual a 13), si el miembro "B" cambia su valor a 4000, los miembros "A" y "C" se quedan únicamente en 160 ya que tratan de traducir el valor 4000 a byte (A y C son igual a 160, B = 4000), el tamaño total de la unión es de 4 bytes debido a que los miembros comparten la misma memoria (la unión pesa lo mismo que su miembro con mayor reserva de memoria).


title: Puntero (informática)

text: Las matrices son casi igual que las estructuras, reservan memoria para cada matriz, la dirección en memoria de cada miembro es consecutiva a la suma de sus anteriores, mas sus tamaños y la dirección de la matriz total es igual a la del primer miembro, la única diferencia entre una matriz y una estructura es que cada matriz tiene el mismo tipo de dato (los miembros de una estructura pueden ser de distintos tipos).


title: Puntero (informática)

text: Como se puede apreciar, cada miembro tiene una dirección en memoria con 4 bytes de diferencia entre sí. El puntero base de la matriz entera es la dirección de su primer matriz (Matriz@ = Matriz[0]@).


title: Puntero (informática)

text: Ada es un lenguaje fuertemente tipado en el cual todos los punteros son tipados y solamente se permiten conversiones de tipos de seguros. Todos los indicadores están por defecto inicializado en codice_80, y cualquier intento de acceder a la información a través de un puntero a codice_80 provoca una excepción. En Ada, los punteros se llaman "tipos de acceso". Ada-83 no permitía aritmética en tipos de acceso (aunque los distintos compiladores la suministren como una funcionalidad fuera del patrón), pero Ada-95 soporta tipos aritméticos en tipos de acceso seguro por el paquete codice_82.


title: Puntero (informática)

text: Varias versiones antiguas de BASIC para la plataforma Windows tenían soporte para STRPTR() para devolver la dirección de una cadena, y para VARPTR() para devolver la dirección de una variable. Visual Basic 5 también tenía soporte para OBJPTR() para devolver la dirección de una interfaz de objeto, y para un operador ADDRESSOF para devolver la dirección de una función. Los tipos de todos estos son números enteros, pero sus valores son equivalentes a estos valores por tipos de puntero.


title: Puntero (informática)

text: Sin embargo, dialectos más recientes de BASIC, como FreeBASIC o BlitzMax, tienen implementaciones de puntero exhaustivas. En FreeBASIC, la aritmética en punteros codice_83 (equivalente al codice_65 de C) son tratados como si el puntero codice_83 fuera un ancho de bytes. A diferencia de C, los punteros codice_83 no pueden ser desreferenciados. Además, la conversión entre codice_83 y cualquier otro tipo de punteros no generará ninguna advertencia.


title: Puntero (informática)

text: En C y C++ los punteros son variables que almacenan direcciones y pueden ser "null". Cada puntero tiene un tipo que apunta, pero el programador puede convertir libremente entre tipos de puntero (pero no entre un puntero a función y no la función de tipo de puntero). Un tipo de puntero especial llamado el "vacío puntero" permite que apunta a cualquier tipo de variable (no función), pero es limitada por el hecho de que no se puede eliminar las referencias de forma directa. La dirección en sí a veces puede ser manipulada directamente mediante colada un puntero hacia y desde un tipo entero de tamaño suficiente, aunque los resultados se han definido por la implementación y de hecho pueden causar un comportamiento indefinido; mientras que los estándares anteriores a C no tengan un tipo entero que garantice que sea lo suficientemente grande, C99 especifica el nombre definido codice_88 "typedef" en codice_89, pero una aplicación no tiene por qué proporcionarla.


title: Puntero (informática)

text: C++ es totalmente compatible con los punteros de C y el typecasting de C. También es compatible con una nueva agrupación de operadores de typecasting para ayudar a capturar a algunos casts peligrosos no deseados en tiempo de compilación. Desde C++11, la librería estándar de C++ también proporciona punteros inteligentes (codice_90, codice_91 y codice_92) que se pueden utilizar en algunas situaciones como una alternativa segura a los punteros primitivos de C. C++ también es compatible con otro tipo de referencia, muy diferente de un puntero, llamado simplemente una "referencia" o "tipo de referencia".


title: Puntero (informática)

text: La aritmética de punteros, es decir, la capacidad de modificar la dirección de destino de un puntero con operaciones aritméticas (así como comparaciones de magnitud), está restringido por el lenguaje estándar para permanecer dentro de los límites de un solo objeto arreglo (o justo después de él), porque de otro modo provocaría un comportamiento indefinido. Sumando o restando de un puntero que desplaza por un múltiplo del tamaño del tipo de datos que apunta. Por ejemplo, la adición de 1 a un puntero a valores enteros de 4 bytes incrementará el puntero por 4. Esto tiene el efecto de incrementar el puntero para señalar en el siguiente elemento en una matriz contigua de números enteros-que muchas veces presenta un resultado previsto. La aritmética de punteros no se puede realizar en punteros codice_93 porque el tipo de vacío no tiene tamaño, y por lo tanto no puede añadir la dirección de punteros, aunque gcc y otros compiladores realizan operaciones aritméticas de byte de codice_65 como una extensión no estándar. Para trabajar "directamente" con bytes, generalmente arrojan punteros a codice_95, o codice_96 si codice_97 no está definido en la biblioteca estándar que se utiliza.


title: Puntero (informática)

text: La aritmética de punteros le provee al programador una única manera de tratar con diferentes tipos: sumando y restando el número de los elementos requeridos en lugar del actual desplazamiento en bytes. (aunque el puntero sea codice_98, el codice_98 se define como tener siempre un tamaño de un byte, permite el desplazamiento del elemento de la aritmética de punteros en la práctica sea igual a un desplazamiento de bytes) En particular, la definición C declara explícitamente que la sintaxis de codice_100, que es el elemento n-ésimo de la matriz de a, es equivalente a codice_101, que es el contenido del elemento apuntado por codice_102. Esto implica que codice_103 es equivalente a codice_100, y se puede escribir, por ejemplo, codice_105 o codice_106 por igual para acceder al cuarto elemento de una matriz codice_7.


title: Puntero (informática)

text: Aunque poderosa, la aritmética de punteros puede ser una fuente de errores informáticos. Este tiende a confundir a los programadores novatos, forzándolos a diferentes contextos: una expresión puede ser una aritmética ordinaria uno o una aritmética de punteros uno, ya veces es fácil confundir uno con el otro. En respuesta a esto, muchas lenguajes informáticos modernos de alto nivel (por ejemplo Java) no permiten el acceso directo a memoria utilizando direcciones. Además, el dialecto seguro de C, Cyclone, aborda muchos de los problemas con los punteros. Véase lenguaje de programación C de examinar más.


title: Puntero (informática)

text: El puntero codice_93, o codice_65, es compatible en ANSI C y C++ como tipo de genérico puntero. Un puntero a codice_93 puede almacenar una dirección a cualquier tipo de datos no-función, y, en C, se convierte implícitamente a cualquier otro tipo de puntero en asignación, pero se debe convertir explícitamente si es desreferenciado en línea.


title: Puntero (informática)

text: C++ no permite la conversión implícita de codice_65 a otros tipos de puntero, incluso en las asignaciones. Esta fue una decisión de diseño para evitar vaciados descuidados e incluso no deseados, aunque la mayoría de los compiladores solo muestren advertencias como salida, no errores, cuando se encuentran con otros cast.


title: Puntero (informática)

text: En C++, no hay codice_113 y (referencia a void) para complementar codice_65 (puntero a void), ya que las referencias se comportan como alias a las variables que apuntan, y nunca puede ser una variable cuyo tipo es codice_93.


title: Puntero (informática)

text: En el lenguaje de programación C#, los punteros son compatibles solo bajo ciertas condiciones: cualquier bloque de código que incluya punteros debe ser marcada con la palabra clave codice_116. Generalmente, tales bloques requieren permisos de seguridad superiores a código pointerless que se le permitiera correr. La sintaxis es esencialmente la misma que en C++, y la dirección apuntada se puede gestionar tanto memoria administrada como no administrado. Sin embargo, los punteros a memoria administrada (cualquier puntero a un objeto administrado) deben ser declarado usando la palabra clave codice_117, lo que evita que la recolector de basura del movimiento del objeto apuntado, como parte de la gestión de memoria mientras el puntero está a su alcance, lo que mantiene válida la dirección del puntero.


title: Puntero (informática)

text: Una excepción a esto es utilizar la estructura de codice_118, que es un equivalente administrado seguro para codice_119, y no requiere código no seguro. Este tipo suele aparecer cuando el uso de métodos de las codice_120, por ejemplo:


title: Puntero (informática)

text: El .NET Framework incluye muchas clases y métodos en el sistema y los espacios de nombres codice_120 (como la clase codice_122) que convierten tipos de.NET (por ejemplo, codice_123) desde y hacia muchos tipos no administrados y punteros (por ejemplo, codice_124 o codice_125) para permitir la comunicación con código no administrado.


title: Puntero (informática)

text: El lenguaje de programación COBOL soporta punteros a variables. Los objetos primitivos o datos de grupos (graban) objetos de datos declarados dentro de la codice_126 codice_127 de un programa son inherentemente basados en punteros, donde la única memoria asignada en el programa es el espacio para la dirección del elemento de datos (normalmente una palabra de memoria individual), basados en punteros. En el código fuente del programa, estos elementos de datos son utilizados como cualquier otra variable codice_128, pero sus contenidos están indirecta e implícitamente accedidos a través de sus punteros codice_126.


title: Puntero (informática)

text: El espacio de memoria para cada señaló a objeto de datos se suelen asignar dinámicamente utilizando las sentencias codice_130 externos o a través de construcciones del lenguaje extendidos embebidas como codice_131 codice_132 o sentencias codice_131 codice_134


title: Puntero (informática)

text: Las versiones extendidas de COBOL también proporcionan variables de puntero declarados con cláusulas codice_135 codice_136 codice_137. Los valores de estas variables de puntero se establecen y modifican usando codice_138 y declaraciones codice_138 codice_140.


title: Puntero (informática)

text: Algunas versiones extendidas de COBOL también proporcionan variables de codice_141 triple, que son capaces de almacenar las direcciones de código ejecutable.


title: Puntero (informática)

text: El lenguaje PL/I proporciona soporte completo para punteros a todos los tipos de datos (incluyendo punteros a estructuras), recursividad, multitarea, manejo de cadenas, y amplias funciones incorporadas. PL/I era un salto absoluto hacia adelante en comparación con los lenguajes de programación de su tiempo.


title: Puntero (informática)

text: El lenguaje de programación D es un derivado de C y C++, que es totalmente compatible con los punteros de C y los typecasting de C.


title: Puntero (informática)

text: El lenguaje Eiffel orientado a objetos soporta punteros en forma de referencias, que se escriben y no permiten ningún tipo de aritmética de punteros. El estándar ECMA para Eiffel incluye un mecanismo de "tipo adjunto" que pretende garantizar un void seguro.


title: Puntero (informática)

text: Fortran-90 introdujo la capacidad de puntero inflexible de tipos. Los punteros en Fortran contienen algo más que una simple dirección de memoria. También encapsulan los límites inferior y superior de dimensiones de matriz, pasos (por ejemplo, para soportar a las secciones de matriz arbitrarias), y otros metadatos. Un "operador asociación", => se utiliza para asociar un puntero a una variable que tiene un atributo codice_142. El Fortran-90 también se puede usar la declaración codice_143 para asociar un puntero a un bloque de memoria. Por ejemplo, el siguiente código podría ser usado para definir y crear una estructura de lista enlazada:


title: Puntero (informática)

text: Fortran-2003 añade soporte para punteros de procedimiento. También, como parte de la función de "Interoperabilidad de C", Fortran-2003 es compatible con las funciones intrínsecas para la conversión de punteros al estilo C a punteros Fortran y traseros.


title: Puntero (informática)

text: Go tiene punteros. Su sintaxis de declaración es equivalente a la de C, pero escrito al revés, terminando con el tipo. A diferencia de C, Go tiene la recolección de basura, y no permite la aritmética de punteros. Al igual que en C++, no existen los tipos de referencia. Algunos tipos incorporados, como los mapas y canales, están encuadradas (es decir, internamente son punteros a estructuras mutables), y se inicializan utilizando la función codice_144. Como un enfoque diferente (que los tipos de referencia) a la sintaxis unificada entre punteros y no punteros, el operador flecha (codice_145) se ha dejado caer—es posible utilizar el operador punto directamente en un puntero a un tipo de datos para acceder a un ámbito o método del valor desreferenciado, como si el operador punto se utiliza en el tipo de datos subyacente. Esto, sin embargo, solo funciona con 1 nivel de indirección.


title: Puntero (informática)

text: A diferencia de C, C++ o Pascal, no hay representación explícita de punteros en Java. En cambio, las estructuras de datos más complejas como los objetos y las matrices se implementan utilizando referencias. El lenguaje no ofrece operadores explícitos de manipulación de punteros. Aún es posible para el código intentar eliminar la referencia de una referencia nula (puntero null), sin embargo, lo que resulta en una excepción de tiempo de ejecución que es lanzada. El espacio ocupado por objetos de memoria no referenciados se recupera automáticamente recolectando la basura en tiempo de ejecución.


title: Puntero (informática)

text: Los punteros son fuertemente implementados como en Pascal, al igual que los parámetros codice_146 en las llamadas a procedimiento. Modula-2 es más inflexible incluso que Pascal, con al menos vías de escape del sistema de tipos. Algunas de las variantes de Modula-2 (como Modula-3) incluyen recolección de basura.


title: Puntero (informática)

text: Al igual que Modula-2, los punteros están disponibles. Aún hay un menor número de maneras de evadir el sistema de tipos y así Oberon y sus variantes son aún más seguros con respecto a los punteros de Modula-2 o sus variantes. Al igual que con Modula-3, la recolección de basura es una parte de la especificación del lenguaje.


title: Puntero (informática)

text: A diferencia de muchas lenguajes que cuentan con punteros, el estándar ISO Pascal solo permite punteros para hacer referencia a las variables creadas dinámicamente que son anónimas y no les permiten referenciar estándares estáticos o variables locales. No tiene aritmética de punteros. Los punteros deben también de tener un tipo asociado, y un puntero a un tipo no es compatible con un puntero a otro tipo (por ejemplo, un puntero a un char no es compatible con un puntero a un entero). Esto ayuda a eliminar los problemas de seguridad inherentes tipo con otras implementaciones de puntero, especialmente los utilizados para PL/I o C. También elimina algunos riesgos causados por punteros colgados, pero la capacidad de dejar de lado el espacio de forma dinámica se hace referencia mediante el procedimiento estándar codice_147 (que tiene el mismo efecto que la función de la librería codice_148 encontrada en C) significa que el riesgo de punteros no se ha eliminado por completo.


title: Puntero (informática)

text: Sin embargo, en algunas implementaciones comerciales y de código abierto de compiladores de Pascal (o derivados)-como Free Pascal, Turbo Pascal o Object Pascal en Embarcadero Delphi—se le permite un puntero hacer referencia a las variables estáticas o locales estándares y se puede lanzar desde un tipo puntero a otro. Por otra parte la aritmética de punteros está restringida: añadiendo o restando de un puntero se mueve por ese número de bytes en cualquier dirección, pero utilizando los procedimientos estándar codice_149 o codice_150 con que se mueve el puntero por el tamaño del tipo de datos que se "declara" a apuntar. Un puntero sin tipo también proporciona bajo el nombre de codice_151, que es compatible con otros tipos de puntero.


title: Puntero (informática)

text: El lenguaje de programación Pauscal presenta un fuerte soporte de punteros, permitiendo apuntar a variables, estructuras, procedimientos, prototipos, uniones e incluso clases y sus métodos. Los punteros se pueden utilizar para almacenar la dirección en memoria de un objeto o para crear una referencia a este. Pauscal utiliza los punteros para convertir tipos de datos sin necesidad de ninguna interfaz de programación de aplicaciones (API) externa, aumentando la velocidad de ejecución de los programas ligeramente y permitiendo que estos sean "nativos" del lenguaje.


title: Puntero (informática)

text: El lenguaje de programación Perl soporta punteros, aunque raramente se utilizan, en forma de funciones de empaquetado y desempaquetado. Estos están destinados únicamente a las interacciones simples con bibliotecas OS compiladas. En todos los demás casos, Perl utiliza referencias, que se escriben y no permiten ningún tipo de aritmética de punteros. Estos se utilizan para construir complejas estructuras de datos.


title: Manel Navarro

text: Manel Navarro Quesada (Sabadell, Cataluña, España, 7 de marzo de 1996), más conocido como Manel Navarro, es un cantante, guitarrista y compositor español.


title: Manel Navarro

text: Fue elegido en "Objetivo Eurovisión" para representar a España en el "Festival de la Canción de Eurovisión 2017" que tuvo lugar en la ciudad de Kiev (Ucrania). El tema ganador en la selección fue «Do It for Your Lover», que obtuvo el último puesto en el festival, con únicamente 5 puntos del televoto, otorgados por Portugal.


title: Manel Navarro

text: Hijo de Montse Quesada, trabajadora de El Corte Inglés, y de Manuel Navarro, trabajador de Lidl, quiso ser futbolista antes de dedicarse a la música. Fue fichado por el C. E. Sabadell y después jugó con el Viladecavalls F.C., para finalmente dedicarse a la música.


title: Manel Navarro

text: En el 2014 se dio a conocer después de ganar la segunda edición del concurso autonómico para jóvenes talentos musicales "Teen Star" con su versión acústica de «Hold on, we're going home», del canadiense Drake, que le permitió firmar su primer contrato discográfico con TeenStarRecords y, unos meses después, fichar por la misma agencia que impulsó a los grupos Auryn y Sweet California, banda a la que acompañó en su anterior gira "Wonder Tour" como telonero. Asimismo, grabó el primer tema de su autoría debutando como compositor, titulado "Brand new day".


title: Manel Navarro

text: En 2016 firmó con la discográfica Sony Music Entertainment (SME), y lanzó su primer sencillo, «Candle». En enero de 2017 lanzó su segundo sencillo, «Do It for Your Lover», un tema pop compuesto también por él mismo, entrando en la lista de LOS40, alcanzando el puesto número 19, siendo considerado como una de las figuras emergentes para 2017. El día de la celebración del festival se encontraba en el último puesto en dicha lista.


title: Manel Navarro

text: El 12 de enero de 2017 se anunció su participación en "Objetivo Eurovisión 2017", la preselección para representar a España en el Festival de Eurovisión 2017, junto a Paula Rojo, Mario Jefferson, Maika Barbero, Mirela Cabero y Leklein.


title: Manel Navarro

text: El 11 de febrero fue seleccionado para representar a España en el Festival de Eurovisión 2017, con su tema «Do It for Your Lover», tras imponerse en el programa "Objetivo Eurovisión" a los otros cinco participantes con 34 puntos del jurado profesional y 24 del televoto que sumaron un total de 58. Las votaciones acabaron en empate con Mirela, que había sido la ganadora del voto popular, el jurado volvió a votar para romper el empate y, por dos votos a uno, se eligió a Manel como representante ante críticas y abucheos del público presente. El público consideró que el jurado, uno de los integrantes del cual promovió la candidatura de Manel en su programa de radio y es su amigo personal, penalizó a Mirela al darle una puntuación muy por debajo de lo percibido por el público. Apenas se supo el resultado, por las redes sociales se desató un aluvión de críticas al ganador y a la producción de la gala, además alegatos de fraude en las votaciones para favorecer a Manel. Incluso el PSOE, partido en la oposición en ese momento, pidió explicaciones al gobierno y a RTVE por la gala.


title: Manel Navarro

text: Manel participó el 13 de mayo en la final del Festival de la Canción de Eurovisión 2017 actuando en decimosexto lugar.


title: Manel Navarro

text: Su actuación se vio deslucida por un grave fallo de afinación en el punto álgido de la canción, un gran gallo, este incidente fue ampliamente comentado en las redes y objeto de todo tipo de chascarrillos, incluso por parte del mismo cantante. El resultado de su participación en Eurovisión, por posición, ha sido el más bajo de España en la historia del concurso. Siendo la única vez que se ha obtenido el último puesto de 26 países y el único intérprete que no consiguió ningún punto de los cuarenta y dos jurados, dejando evidente la diferencia de criterio entre los jurados profesionales europeos y los elegidos por RTVE. Consiguió solamente cinco puntos del televoto de Portugal que evitaron que acabara su participación sin puntos.


title: Manel Navarro

text: El 2 de junio de 2017 publica el tema «Keep on Falling», que cuenta una historia propia de superación personal.


title: Manel Navarro

text: En agosto lanza la campaña anti-bullying "#LoSuperé", a la que se unieron famosos como Carlos Baute, Gemeliers, Adrián Rodríguez y Nathan Trent.


title: Manel Navarro

text: En abril de 2018 anuncia su fichaje por la discográfica Universal Music y publica el tema «Voulez-vous Danser?».


title: Carem

text: El reactor CAREM (Central Argentina de Elementos Modulares) es un proyecto de central nuclear de baja potencia concebida con un diseño de última generación.


title: Carem

text: Las posibles aplicaciones de una central de este tipo son variadas y comprenden desde el suministro de energía en regiones aisladas a un costo de aproximadamente U$S 4.000 por kW de capacidad, provisión de energía para desalinización de agua de mar, hasta su utilización como laboratorio de investigación y de entrenamiento para operadores de grandes centrales nucleares, entre otras.


title: Carem

text: Sus características originales lo hacen diferente a los reactores nucleares de agua presurizada convencionales (PWR), que han estado en operación en las cuatro últimas décadas.


title: Carem

text: El proyecto está en desarrollo por una gerencia especial creada para tal fin dentro de la Comisión Nacional de Energía Atómica, y como principal prioridad, la participación en las etapas de diseño, fabricación y construcción de empresas de capitales públicos y privados argentinos.


title: Carem

text: En 2005, Carem fue seleccionado entre una docena de proyectos de mayor interés a nivel mundial de reactores de esa franja de potencia, por una comisión de expertos convocada por el Departamento de Energía de los EE. UU..


title: Carem

text: Luego de reiterados retrasos y replanificaciones el Gobierno Nacional, la presidenta de la Comisión Nacional de Energía Atómica, anunció puesta a crítico para fines del año 2024.


title: Carem

text: El concepto CAREM fue presentado por primera vez en 1984 en Lima, durante una conferencia del Organismo Internacional de Energía Atómica (OIEA) sobre reactores de pequeño y mediano tamaño. Desde entonces, los criterios de diseño de Carem y otros similares han sido adoptados por otros diseñadores de plantas nucleares, originando así una nueva generación de reactores, de los cuales el Carem fue, cronológicamente, uno de los primeros. En 2006 se encontraba en una etapa avanzada del diseño, paso previo a la construcción de un prototipo a escala real, siendo parte del Programa de Reactivación de la Actividad Nuclear, anunciado en agosto de 2006.


title: Carem

text: Un Carem prototipo de 25 MWe (100 MWth) está pensado para funcionar a 122.5 bar con un caudal nominal de 410 kg/s en el circuito primario y una temperatura de 326 °C.


title: Carem

text: Utiliza combustible nuclear de óxido de uranio, muy similar al que usan los reactores de las centrales de Atucha y Embalse solo que, en el caso del Carem, enriquecido al 1% o 2%, y agua ligera como refrigerante.


title: Carem

text: Los Generadores de Vapor fueron los elementos que más variaron desde los primeros diseños del Carem allá por la década de los 1980s. Los actuales responden a un diseño muy empleado en submarinos rusos. Constituyen un aspecto crítico de los Carem.


title: Carem

text: El proyecto Carem cuenta con ensayos realizados en el reactor RA-8 (Pilcaniyeu, Río Negro) para medición de parámetros de criticidad, distribución de potencia y validación de cadena de cálculo. Se construyó un circuito de alta presión y convección natural para conocer detalles termohidráulicos y verificar que la convección natural puede imponerse, ensayándose además los mecanismos hidráulicos de control.


title: Carem

text: Las ventajas técnicas y económicas que se obtienen en el diseño Carem respecto del tradicional son las siguientes:


title: Carem

text: Es un núcleo con baja pérdida de carga y puede apagarse en menos de un minuto. Posee un diámetro equivalente de 131 cm y consiste de 61 elementos combustibles en una configuración hexagonal de 108 tubos de zircaloy cada uno. Es para destacar que usa 3.812,5 kg de uranio enriquecido al 3,4% y 1,8%, y algunas barras poseen veneno quemable (gadolinio). Esto conduce a tener un núcleo poco propenso a las “rampas de potencia” y conseguir mejores tasas de quemado que los combustibles de los .


title: Carem

text: Los elementos combustibles tienen una longitud activa de 1,4 m y se recambian desde el centro del núcleo hacia el exterior, teniendo un ciclo donde se retiran el 50% de los elementos cada 330 días de operación a potencia plena. El reactor debe parar durante un mes cada año para estos recambios.


title: Carem

text: Existen 18 tubos guías para control, unos para instrumentación y varios para el sistema de enclavamiento.


title: Carem

text: Cuenta con 12 módulos de generadores de vapor, ubicados dentro del recipiente a presión. El sistema secundario recolecta el vapor trabajando a 47 bar y 290 °C.


title: Carem

text: Carem es reconocido internacionalmente por tener una eficiencia superior a los diseños de III generación perteneciendo a la gama de baja y mediana potencia.


title: Carem

text: Carem es innovador e inaugura la IV generación de reactores bajo el concepto de integración y seguridad pasiva. Las reducciones de un posible (accidente con pérdida de refrigerante) es una ventaja muy importante, como así también la ventaja de autocontrolarse sin intervención durante las primeras 36 horas tras un incidente.


title: Carem

text: Es un reactor barato debido a la simplicidad en su funcionamiento y por poseer combustible nuclear de alto quemado.


title: Carem

text: Posee ya competidores, que si bien están algunas etapas atrás en desarrollo, vienen avanzando con rapidez.


title: Carem

text: La construcción de un prototipo del reactor CAREM se encuentra en ejecución en la localidad de Lima (Buenos Aires), estimando que la entrada en servicio sea para fines de 2024.


title: Carem

text: El CAREM comercial será basado en el prototipo CAREM 25 utilizando las lecciones aprendidas de su desarrollo y estará basado en la idea de una construcción modular y puesta en marca por etapas. Esto permite ingresos anticipados debidos a las ventas de electricidad cuando se inicia la producción de las primeras unidades. A la vez este esquema facilita el crecimiento de la demanda de energía, y la flexibilidad para complementar las fuentes de energía renovable.


title: Carem

text: Una de las posibilidades del CAREM es la configuración 480 compuesta de cuatro reactores de 400 MWt cada uno. Con cada reactor con su propia contención pero con sistemas y componentes compartidos. Este sería realizado en una construcción por etapas y con una optimización del diseño de seguridad en relación con el prototipo CAREM25. Albergaría dos edificios nucleares paralelos, con dos reactores con sus correspondientes contenciones y los sistemas nucleares de ambos reactores. Cada edificio nuclear tendrá un edificio BOP con capacidad para procesar el vapor proveniente de dos reactores. Entre ambos se construirá el edificio de los sistemas compartidos y la sala de control.


title: Carem

text: El mismo podría ser construido en la Provincia de Formosa al término de la construcción del CAREM prototipo. Con un costo aproximado de 325 millones de dólares mediante la aprobación de un proyecto de ley, el 24 de noviembre de 2009, además de aprobar la construcción de un reactor de energía nuclear de cuarta generación en el país, obliga a la Comisión Nacional de Energía Atómica (CNEA) a diseñar e implementar el reactor CAREM (Central Argentina de Elementos Modulares).


title: Colonia (México)

text: Una colonia es la denominación que se le da en México a un vecindario que no tiene autonomía jurisdiccional o representación. Habitualmente, las colonias tienen un código postal específico. A los desarrollos urbanos modernos, como las comunidades en urbanización cerrada, llamadas barrios, fraccionamientos o vecindarios privados, se les denomina también colonias. Debido a que hay localidades que no tienen colonias, el gobierno suele dar la equivalencia a una colonia con una localidad.


title: Informe MacBride

text: El Informe MacBride, también conocido como «Voces múltiples, un solo mundo», es un documento de la Unesco publicado en 1980 y redactado por una comisión presidida por el irlandés Seán MacBride, ganador del premio Nobel de la Paz. Su objetivo era analizar los problemas de la comunicación en el mundo y las sociedades modernas, particularmente con relación a la comunicación de masas y a la prensa internacional, y entonces sugerir un nuevo orden comunicacional para resolver estos problemas y promover la paz y el desarrollo humano.


title: Informe MacBride

text: El informe MacBride es un documento, de carácter político e intelectual, impulsado por la Organización de las Naciones Unidas para la Educación, la Ciencia y la Cultura (Unesco) cuyo objetivo era el desarrollo de un nuevo equilibrio mundial en el ámbito de la información y de la comunicación.


title: Informe MacBride

text: Este informe se presentó en la Conferencia General de la UNESCO en el año 1980 y habla, explícitamente, de las relaciones que se establecen entre los campos de la comunicación, las relaciones de poder y la democracia. El título original de este informe es «"Un sólo mundo, voces múltiples"», al que se terminó por conocer como «Informe MacBride» a consecuencia de que Sean MacBride fue el Presidente de la Comisión Internacional que se encargó de este estudio.


title: Informe MacBride

text: En el documento se establecieron los principios, las acciones y los puntos en los que debería basarse ese Nuevo Orden Mundial de la Información y Comunicación (NOMIC) que se proponía en el informe.


title: Informe MacBride

text: Sean MacBride fue Ministro de Asuntos Exteriores de Irlanda. En 1974 fue galardonado con el Premio Nobel de la Paz; en 1977 obtuvo también el equivalente soviético del Nobel, llamado Premio Lenin. MacBride centró sus trabajos en la defensa de los Derechos Humanos y fundó, en 1946, el Partido Republicano Irlandés. A su vez, en 1961 presidió la Organización de Defensa de los Derechos Humanos de Amnistía Internacional y, desde 1974 a 1976, trabajó como Alto Comisionado de las Naciones Unidas en Namibia.


title: Informe MacBride

text: En 1977 la UNESCO le nombró Presidente de la Comisión Internacional que se encargaría de desarrollar un estudio sobre los problemas de la comunicación. Estudio que daría lugar al denominado Informe MacBride.


title: Informe MacBride

text: En junio de 1977, Sean MacBride pronunció un discurso en la UNESCO sobre el papel de la prensa y la importancia de esta en la sociedad. El discurso se centró en la fragilidad y la vulnerabilidad de la prensa a consecuencia de las grandes presiones económicas, financieras y políticas que sufrían los medios de comunicación del momento. Estas presiones tenían su origen en los intereses de las multinacionales de los grandes grupos de comunicación.


title: Informe MacBride

text: En ese mismo discurso, MacBride sugirió que una organización como la UNESCO tendría que encargarse de investigar la cuestión planteada y que, además, esta debería proponer un objeto de declaración o, incluso, una convención que intentara proteger el derecho a la libertad de expresión y de información con el fin de evitar que los medios de comunicación fueran manipulados por los gobiernos de turno o por los intereses económicos.


title: Informe MacBride

text: Su discurso tuvo tanto calado en la UNESCO que, unos meses más tarde, M. M'Bow, entonces Director General de la UNESCO, le propuso ser el Presidente de una Comisión Internacional que se encargara de estudiar los problemas que existían en el ámbito de la comunicación.


title: Informe MacBride

text: En esa Comisión participaron grandes personalidades del mundo de la información y de la comunicación. Entre ellos destacaron: Hubert Beuce-Mery, fundador de Le Monde; Gabriel García Márquez, escritor colombiano; y Leonid Zamiatin, Portavoz del Gobierno soviético. Betty Zimmerman (Canadá), fue la única mujer en integrar la Comisión y la única con experiencia en medios electrónicos.