Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: rulovive en 5 Abril 2014, 20:12 pm



Título: doble duda (arreglo dinamico y funciones entre clases)
Publicado por: rulovive en 5 Abril 2014, 20:12 pm
buen dia... le he estado dando vueltas a este codiguito pero no le veo el error... el caso es que se me cicla la ejecucion y no me responde... codigo:

Código:
include<iostream>
using namespace std;

void main(){
int *a,*b;

a=new int;
b=new int;

for(int i=0; i<=50; i++)
{*a=i;
*b=i;
cout<<*a<<" "<<*b<<" "<<&a<<" "<<&b<<endl;
cout<<endl;

a++;b++;}

system("pause");
}


el programa funciona correctamente si el for es hasta 4 o 5 elementos... pero si son mas de diez se corta la ejecucion y me dice que desencadene un punto de interrupcion.. he probado mi codigo en visual c++ 2010 y en borland c++... en ambos sucede lo mismo, probe tmb modificandolo asi:

Código:
void main(){
int *a,*b;

a=new int;
b=new int;

for(int i=0; i<=50; i++)
{*(a+i)=i;
*(b+i)=i;
cout<<*(a+i)<<" "<<*(b+i)<<endl;
cout<<endl;

}

system("pause");}


pero es igual... en ultima instancia me vere obligado a usar la directiva <list> o bien hacerlo con listas enlazadas mediante punteros dentro de una estructura... pero he visto en varios lugares de internet que esta forma tambien es valida, y sin embargo no logro que funcione con mas de diez elementos.... estoy haciendo algo mal?



y ahora el pilon jeje. Alguien sabe si es posible que, teniendo dos clases distintas, el valor de retorno del metodo de la segunda se use como parametro en el metodo de la primera? por ejemplo algo asi:

Código:
class uno{
void recibo(int a);
};

class dos{
void paso(int a);
};

int dos::paso(int a){
return a;
}


void uno::recibo(int a){    //esta es la parte que no se como implementar
cout<<dos::paso(a);
}


me podrian ayudar??




Título: Re: doble duda (arreglo dinamico y funciones entre clases)
Publicado por: amchacon en 5 Abril 2014, 20:49 pm
Te complicas demasiado:
Código
  1. int* array = new int[100];
  2.  
  3. // funciona igual que un array normal
  4.  
  5. array[2] = 3;
  6. cout<<array[2]<<endl;

También puede usar la clase vector:
http://www.cplusplus.com/reference/vector/vector/


Título: Re: doble duda (arreglo dinamico y funciones entre clases)
Publicado por: rulovive en 5 Abril 2014, 21:24 pm
gracias por responder ^^ en realidad lo que quiero es no darle un tamaño definido sino que mi arreglo crezca  al ritmo en que yo lo vaya necesitando... y la vdd no se si eso se pueda hacer a base de puros new -asi como en mi codigo- o a fuerzas necesite usar los realloc (que aqui entre nos me han funcionado de maravilla)


Título: Re: doble duda (arreglo dinamico y funciones entre clases)
Publicado por: noele1995 en 5 Abril 2014, 21:42 pm
-Como dijo amchacon puedes usar la clase vector que te permite meter y sacar elementos.

-Con esto no estas creando arrays de ints en a y en b, simplemente estas creando ints
Código
  1. int *a,*b;
  2. a=new int;
  3. b=new int;
Para crear arrays necesitarias poner el tamaño:
Código
  1. int *a,*b;
  2. a=new int[size_a];
  3. b=new int[size_b];

Saludos


Título: Re: doble duda (arreglo dinamico y funciones entre clases)
Publicado por: amchacon en 5 Abril 2014, 22:05 pm
gracias por responder ^^ en realidad lo que quiero es no darle un tamaño definido sino que mi arreglo crezca  al ritmo en que yo lo vaya necesitando... y la vdd no se si eso se pueda hacer a base de puros new -asi como en mi codigo- o a fuerzas necesite usar los realloc (que aqui entre nos me han funcionado de maravilla)
Se puede hacer a base de news:

Código
  1. int* array = new int[10];
  2.  
  3. // operaciones...
  4.  
  5. //...
  6.  
  7. // necesitamos mas elementos!
  8.  
  9. int* aux = new int[20]; // crear un array mas grande
  10.  
  11. for (int i = 0; i < 10;i++)
  12.    aux[i] = array[i]; // copiar los elementos que ya estaban
  13.  
  14. delete[] array; // borramos el antiguo array
  15. array = aux; // cambiamos el puntero para que apunte al nuevo array

Pero yo lo veo una tontería. La clase vector hace precisamente eso, no hay necesidad de reinventar la rueda.


Título: Re: doble duda (arreglo dinamico y funciones entre clases)
Publicado por: rulovive en 5 Abril 2014, 22:11 pm
cierto jeje... bueno la duda principal era esa... si podia hacerlo de una manera simple como en el codigo qu epuse arriba pero veo que estaba haciendo otra cosa distinta... son una luz en la oscuridad :D solo me falta investigar sobre eso de los metodos de clases