doble duda (arreglo dinamico y funciones entre clases)

Iniciado por rulovive, 5 Abril 2014, 20:12 PM

0 Miembros y 1 Visitante están viendo este tema.

rulovive

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:

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:

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:

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??



amchacon

Te complicas demasiado:
Código (cpp) [Seleccionar]
int* array = new int[100];

// funciona igual que un array normal

array[2] = 3;
cout<<array[2]<<endl;


También puede usar la clase vector:
http://www.cplusplus.com/reference/vector/vector/
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

rulovive

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)

noele1995

-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 (cpp) [Seleccionar]
int *a,*b;
a=new int;
b=new int;

Para crear arrays necesitarias poner el tamaño:
Código (cpp) [Seleccionar]
int *a,*b;
a=new int[size_a];
b=new int[size_b];


Saludos

amchacon

Cita de: 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)
Se puede hacer a base de news:

Código (cpp) [Seleccionar]
int* array = new int[10];

// operaciones...

//...

// necesitamos mas elementos!

int* aux = new int[20]; // crear un array mas grande

for (int i = 0; i < 10;i++)
   aux[i] = array[i]; // copiar los elementos que ya estaban

delete[] array; // borramos el antiguo array
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.
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

rulovive

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