Este ejercicio pasenlo a la computadora. Recuerden modificar el proyecto para que les permita utilizar código inseguro.
El programa si funciona!
Que hace?: Declaramos un vector del tipo int, y otro vector del tipo puntero. Guardamos el contenido del vector original en otro vector del tipo puntero. Declaramos otro puntero que apunta a la direccion fisica de memoria donde se ecuentra el vector original.
Guradamos en el vector puntero los datos del vector original y lo incrementamos para que pueda seguir guradando datos en la siguiente direccion del tipo int.
Al finalzar de llenarlo, recorremos otro puntero que contiene la direccion original del vector y lo recorremos con otro ciclo for al cual le hacemos un incremento.
Este ejemplo esta basado en el tema de Punteros parte 2 Operadr Stackalloc creacion de pilas
using System;
using System.Collections.Generic;
using System.Text;
{
class Program
{
unsafe static void
{
int[] arreglo = new int[] { 1,3,4,5,6,7,6,4,3,2};// Un arreglo
int* pt = stackalloc int[10]; //Un puntero
int* ppt;// Un puntero sencillo
*pt = arreglo[0];// Aqui apuntamos a la direccion
ppt = pt;// Igualamos las direcciones donde se encuentra el inicio
for (int i = 0; i <>
{
*pt = arreglo[i];// Grabamos en esa direccion de memoria el contenido
pt++;// Nos movemos en memoria la distancia del tipo int para poder grabar en el siguiente espacio
}
// Como ya movimos el puntero pt de su lugar de origen, vamos a utilizar el puntero ppt que se encuentra en el lugar
//de inicio del vector orignal, de esa forma lo podemos recorrer.
for (int i = 0; i <>
{
Console.WriteLine("el arreglo: {0}", *ppt);
ppt++;//En este lugar estamos recorriendo nuevamente directametne la memoria. Recordemos que el puntero ppt apuntaba a la direccion de un puntero tipo vector, el cual a su ves apuntaba directamente a un vector del tipo int. No olvidemos que cuando utilizamos el incremento ++, lo que estamos haciendo es incrementando una posicion en memoria del tamaño del tipo del puntero. En este caso es del tipo INT (entero).
}
Console.ReadLine();
}
}
}
No hay comentarios.:
Publicar un comentario