Perfecto Steven,<br><br>Muchas gracias por tu rápida respuesta. Lo pondré en práctica.<br><br>Saludos.<br><br><div class="gmail_quote">El 1 de mayo de 2012 21:47, Steven Davidson <span dir="ltr"><<a href="mailto:srd4121@njit.edu" target="_blank">srd4121@njit.edu</a>></span> escribió:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hola User,<div class="im"><br>
<br>
On 5/1/2012 2:21 PM, User wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hola de nuevo,<br>
<br>
He realizado este pequeño programa para probar la alternativa que no<br>
usa clases plantillas:<br>
<br>
#include <iostream><br>
#include <stdio.h><br>
#include <stdlib.h><br>
</blockquote>
<br></div>
Deberías acostumbrarte a los nombres correctos de estos ficheros estándares de cabecera de C++:<br>
<br>
#include <cstdio><br>
#include <cstdlib><br>
<br>
Aunque creo que no necesitas <cstdio>.<div class="im"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
#include <fstream><br>
<br>
using namespace std;<br>
<br>
int main()<br>
{<br>
</blockquote>
<br></div>
[CORTE]<br>
<br>
Recuerda que debes liberar la memoria previamente adjudicada por 'realloc()'. Escribe:<br>
<br>
free( pDoubles );<div class="im"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
     return 0;<br>
}<br>
<br>
Imaginemos ahora que necesito que el array de doubles sea<br>
bidimensional, es decir, sabemos que va a tener dos columnas, pero un<br>
número indeterminado de filas.<br>
<br>
¿Cómo podría implementarlo?<br>
<br>
</blockquote>
<br></div>
Si sabes que van a ser dos números por elemento, entonces tienes dos posibles soluciones:<br>
<br>
1. Crea un array de 'double' con el doble de la cantidad de elementos que necesitas. Por ejemplo,<div class="im"><br>
<br>
double *pDoubles = NULL;<br>
int nCant = 0;<br>
<br></div>
pDoubles = (double *) realloc( pDoubles, ++nCant * 2 * sizeof(double) );<br>
...<br>
Y luego, para acceder a un elemento, doblamos el índice:<br>
<br>
pDoubles[2*5] = -1.023;<br>
pDoubles[2*5+1] = 6.7031;<br>
<br>
Se trata del 6º elemento - de índice 5, pero realmente se trata de los elementos de índices 10 y 11 en nuestro array.<br>
<br>
<br>
2. Crea un array de un array de 'double'. Esto es,<br>
<br>
typedef double coordenada[2];<br>
...<br>
coordenada *pDoubles = NULL;<br>
int nCant = 0;<br>
<br>
pDoubles = (coordenada *) realloc( pDoubles, ++nCant * sizeof(coordenada) );<br>
...<br>
Para acceder a un elemento, usamos el índice para 'pDoubles' y otro para la "columna":<br>
<br>
pDoubles[5][0] = -1.023;<br>
pDoubles[5][1] = 6.7031;<br>
<br>
Como puedes ver, creamos un tipo que realmente es un array de 2 'double', para usarlo en el array dinámico de 'coordenada'.<br>
<br>
<br>
Si quieres, puedes crear un array dinámico de arrays dinámicos de 'double'. Por ejemplo,<br>
<br>
double **pDoubles = NULL;<br>
int nCant = 0;<br>
<br>
pDoubles = (double **) realloc( pDoubles, ++nCant * sizeof(double *) );<br>
pDoubles[i] = (double *) realloc( pDoubles, 2 * sizeof(double) );<br>
<br>
pDoubles = (double **) realloc( pDoubles, ++nCant * sizeof(double *) );<br>
pDoubles[i] = (double *) realloc( pDoubles, 2 * sizeof(double) );<br>
...<br>
El acceso a un elemento es el de un array bidimensional:<br>
<br>
pDoubles[5][0] = -1.023;<br>
pDoubles[5][1] = 6.7031;<div class="im HOEnZb"><br>
<br>
<br>
Espero que esto te oriente.<br>
<br></div><div class="HOEnZb"><div class="h5">
Steven<br>
<br>
<br>
______________________________<u></u>_________________<br>
Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net" target="_blank">Cconclase@listas.conclase.net</a><br>
<a href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net" target="_blank">http://listas.conclase.net/<u></u>mailman/listinfo/cconclase_<u></u>listas.conclase.net</a><span onmouseout="cancel = false; window.setTimeout(WRCHideContent, 1000); clearTimeout(showTimer);" onmouseover=" var self = this; showTimer = window.setTimeout(function(){WRCShowContent({'rating':{'value':-1,'weight':-1},'flags':{},'single':false,'ttl':7200,'expireTime':'20120501233033'}, self.className)},600);" class="wrc0" style="padding-right:16px;width:16px;height:16px"></span><br>

Bajas: <a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" target="_blank">http://listas.conclase.net/<u></u>index.php?gid=2&mnu=FAQ</a><span onmouseout="cancel = false; window.setTimeout(WRCHideContent, 1000); clearTimeout(showTimer);" onmouseover=" var self = this; showTimer = window.setTimeout(function(){WRCShowContent({'rating':{'value':-1,'weight':-1},'flags':{},'single':false,'ttl':7200,'expireTime':'20120501233033'}, self.className)},600);" class="wrc0" style="padding-right:16px;width:16px;height:16px"></span><br>

</div></div></blockquote></div><br>