<html><head><base href="x-msg://1/"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Eso era justamente Ruben lo que me faltaba. Me di cuenta un rato después de mandar el mail.<div><br></div><div>Gracias.<br><div><div>El 18/11/2010, a las 19:11, Rubén Tomás escribió:</div><br class="Apple-interchange-newline"><blockquote type="cite"><span class="Apple-style-span" style="border-collapse: separate; font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><div class="hmmessage" style="font-size: 10pt; font-family: Tahoma; ">Me da la impresion de que se te olvida borrar la memoria asignada antes, en "array = new int;"<br><br>void metodo(int* vector)<br>{<br>int N=5;<br><br>delete vector;<br> vector = new int[N];<br>for(int i=0; i<5; i++)<br>{<br> vector[i]=i+5;<br> }<br> printf("Valores del vector: %d, %d, %d, %d y %d \n",vector[0],vector[1],vector[2],vector[3],vector[4]);<br>}       <br><br>> From:<span class="Apple-converted-space"> </span><a href="mailto:memmaker650@gmail.com">memmaker650@gmail.com</a><br>> Date: Thu, 18 Nov 2010 18:20:07 +0100<br>> To:<span class="Apple-converted-space"> </span><a href="mailto:cconclase@listas.conclase.net">cconclase@listas.conclase.net</a><br>> Subject: Re: [C con Clase] Vector de tamaño indef, definido en metodo.<br>><span class="Apple-converted-space"> </span><br>> Creo que lo mejor es hacerlo con memoria dinamica. Pero aun así no me termina de funcionar el ejemplo.<br>><span class="Apple-converted-space"> </span><br>> #include <stdio.h><br>> #include <vector><br>><span class="Apple-converted-space"> </span><br>> using namespace std;<br>><span class="Apple-converted-space"> </span><br>> void metodo(int*);<br>><span class="Apple-converted-space"> </span><br>> int main()<br>> {<br>> int *array;<br>> array = new int;<br>><span class="Apple-converted-space"> </span><br>> metodo(array);<br>><span class="Apple-converted-space"> </span><br>> printf("Tercer valor del vector: %d \n", array[2]);<br>><span class="Apple-converted-space"> </span><br>> delete[] array;<br>><span class="Apple-converted-space"> </span><br>> return 0;<br>> }<br>><span class="Apple-converted-space"> </span><br>> void metodo(int* vector)<br>> {<br>> int N=5;<br>><span class="Apple-converted-space"> </span><br>> vector = new int[N];<br>> for(int i=0; i<5; i++)<br>> {<br>> vector[i]=i+5;<br>> }<br>> printf("Valores del vector: %d, %d, %d, %d y %d \n",vector[0],vector[1],vector[2],vector[3],vector[4]);<br>> } <br>> El 18/11/2010, a las 16:07, Gilberto Cuba Ricardo escribió:<br>><span class="Apple-converted-space"> </span><br>> > Hola Jorge,<br>> ><span class="Apple-converted-space"> </span><br>> > Jorge Vega Sanchez escribió:<br>> >> Buenas a todos.<br>> ><span class="Apple-converted-space"> </span><br>> >> A ver el problema que tengo es:<br>> >> - Tengo que definir un vector y array en el programa principal pero<br>> >> no se su tamaño. Si se el tipo del array.<br>> ><span class="Apple-converted-space"> </span><br>> > Bueno, lo de vector y array a la misma vez no lo tendría muy bien<br>> > claro. Pero de un vector solo tal vez pudiéramos hacer algo, sin<br>> > embargo con un array sólo, me temo que no pudiera ayudarte si te estás<br>> > refiriendo a la librería estándar del c++, y sino que me corrijan los<br>> > que están mas duchos en esta temática, pero creo que lo del array<br>> > viene con el nuevo c++0x.<br>> ><span class="Apple-converted-space"> </span><br>> > Entonces vamos a lo que nos ocupa. Lo primero es hacer referencia a la<br>> > librería que contiene las definiciones que vamos a usar, en nuestro<br>> > caso la de vector en la estándar, y luego usamos el espacio de nombres<br>> > donde se definen los elementos de esta librería.<br>> ><span class="Apple-converted-space"> </span><br>> > #include <vector><br>> ><span class="Apple-converted-space"> </span><br>> > using namespace std;<br>> > ...<br>> ><span class="Apple-converted-space"> </span><br>> > Luego en el programa principal, hacemos una declaración de un objeto<br>> > de la clase vector como veremos a continuación y de ahí, bueno, a<br>> > seguir para adelante. :)<br>> ><span class="Apple-converted-space"> </span><br>> > ...<br>> > int<br>> > main()<br>> > {<br>> > ...<br>> ><span class="Apple-converted-space"> </span><br>> > typedef int mytype;<br>> ><span class="Apple-converted-space"> </span><br>> > // en esta parte lo que está entre <>,<br>> > // es el tipo que dices que conoces.<br>> > vector <mytype> my_new_vector;<br>> ><span class="Apple-converted-space"> </span><br>> > // reservamos el espacio según el tamaño del tipo<br>> > // y la cantidad de elementos que no conozco de forma<br>> > // predeterminada<br>> > my_new_vector.reserve( N * sizeof(mytype) );<br>> ><span class="Apple-converted-space"> </span><br>> > // y entonces se accede a los elementos del vector de la forma<br>> > my_new_vector[0] = 2;<br>> > my_new_vector[1] = 12;<br>> > my_new_vector[2] = 22;<br>> > ...<br>> ><span class="Apple-converted-space"> </span><br>> > // o algo similar con<br>> > my_new_vector.resize( N );<br>> > my_new_vector[0] = 2;<br>> > my_new_vector[1] = 12;<br>> > my_new_vector[2] = 22;<br>> ><span class="Apple-converted-space"> </span><br>> > // o también no definir ni "reserve", ni "resize" y dejarlo<br>> > // abierto para ir agregando información al final del vector<br>> > my_new_vector.push_back( 32 );<br>> > my_new_vector.push_back( 42 );<br>> ><span class="Apple-converted-space"> </span><br>> > return 0;<br>> > }<br>> ><span class="Apple-converted-space"> </span><br>> >> - El tamaño y sus componentes se definen en un metodo/arreglo/procedimiento.<br>> ><span class="Apple-converted-space"> </span><br>> > No entiendo qué preguntas aquí.<br>> ><span class="Apple-converted-space"> </span><br>> >> Estoy probando formas pero de momento todas me dan error.<br>> ><span class="Apple-converted-space"> </span><br>> > Si no es esto lo que preguntabas, pues entendí mal y olvida lo que<br>> > puse. Cualquier otra duda, no dudes en preguntarla.<br>> ><span class="Apple-converted-space"> </span><br>> >> Un saludo y gracias de antemano.<br>> ><span class="Apple-converted-space"> </span><br>> > --<span class="Apple-converted-space"> </span><br>> > Saludos,<br>> > Gilberto Cuba Ricardo<br>> ><span class="Apple-converted-space"> </span><br>> ><span class="Apple-converted-space"> </span><br>> > _______________________________________________<br>> > Lista de correo Cconclase<span class="Apple-converted-space"> </span><a href="mailto:Cconclase@listas.conclase.net">Cconclase@listas.conclase.net</a><br>> ><span class="Apple-converted-space"> </span><a href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net">http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net</a><br>> > Bajas:<span class="Apple-converted-space"> </span><a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a><br>><span class="Apple-converted-space"> </span><br>><span class="Apple-converted-space"> </span><br>> _______________________________________________<br>> Lista de correo Cconclase<span class="Apple-converted-space"> </span><a href="mailto:Cconclase@listas.conclase.net">Cconclase@listas.conclase.net</a><br>><span class="Apple-converted-space"> </span><a href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net">http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net</a><br>> Bajas:<span class="Apple-converted-space"> </span><a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a><br>_______________________________________________<br>Lista de correo Cconclase<span class="Apple-converted-space"> </span><a href="mailto:Cconclase@listas.conclase.net">Cconclase@listas.conclase.net</a><br><a href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net">http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net</a><br>Bajas:<span class="Apple-converted-space"> </span><a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a></div></span></blockquote></div><br></div></body></html>