Título: me podrian decir que le falta a estos codigos porfa Publicado por: lucas85 en 26 Octubre 2010, 05:52 am #include <iostream>
using namespace std; int main() { int* int_op1; int* int_op2; delete* dbl_op1; char* chr_op1; //asignar memoria la direccion de numero se //almacena en los apuntadores int_op1=new int: int_op1=new double; //el valor se almacena en la pila dinamica *int_op1=10; cout<<*int_op1;//imprime 10 *dbl_op1=22.50//el valor se almacena ahora //en una pila cour<<*dbl_op1;//imprime 22.50 //asigna e inicializa memoria para almacenar un entero int_op2=new int(44); int_op2 =(int*)malloc(size of (int)); cout<<*int_op2; //asigno 256 bytes a la pila la direccion de comienzo se almacena en chr_op1 chr_op1=new char[2%]; strcpy(chr_op1, "ico441"); //devuelve la cantidad de memoria delete int_op1; delete int_op2; delete dbl_op1; delete[]char_op1; ____________________________________________________________________ #include <iostream> using namespace std; const int true=1; const int true=0; void insertar(struct nodo**hd, int item) { struct nodo *actual,*anterior,*nuevo; int encontrado; if(*hd==null) { nuevo=new nodo; if(nuevo==null) { cout<<"no hay espacio"; exit(1); } nuevo->valor=item; nuevo->siguiente=null; *hd=nuevo; } else if(item<(*hd)->valor) { nuevo=new nodo; if(nuevo=null) { cout<<"no hay memoria"; exit(1); } nuevo->valor=item; nuevo->siguiente=*hd; *hd=nuevo; } //caso general en el mejor else { nuevo=new nodo; if(nuevo==null) { cout<<"no hay espacio"; exit(1); } //asigna nuevo valor nuevo->valor=item; //el apuntador anterior comienza al inicio de //la lista anterior=*hd; //actual apunta al segundo nodo de la lista actual=*hd->siguiente; encontrado=false; //busca en la lista el punto de inserción while(actual !=null && encontrado==FALSE) { if(item>actual->valor) { //anterior apunta al segundo nodo anterior=actual; //actual apunta al proximo nodo actual=actual->siguiente; } else encontrado=TRUE; } //modificar los apuntadores para efectuar la insercion nuevo->siguiente=actual; anterior->siguiente=nuevo; } } ____________________________________________________________________ #include <iostream> using namespace std; struct nodoE { int valor; struct nodo *siguiente; } int main() { struct nodoE *inicio; inicio=NULL; int val.cont=1; while(cont==1) { cout<<"valor a introducir"; cin>>val; insertar(&inicio,valor); cout<<"continuar?"; cin>>cont; } } ____________________________________________________________________ #include <iostream> using namespace std; struct nodoE; { int valor; struct nodo *siguiente; } int main() { struct nodoE *inicio; inicio=null int val, cont=1; while(cont==1) { cout<<"valor a introducir"; cin>>ral //recorrer la lista ligada void recorrido(struct nodo *hd) { struct nodo*actual; actual=hd//se inicializa el primer nodo while(actual !=null) { cout<<"actual->valor<<endl; actual=actual->siguiente ;//se brinca al siguiente } ____________________________________________________________________ void eliminar (struct nodo **hd,int item) { struct nodo *temp, *anterior, *actual; //borra el primer nodo de la lista if(item==(*hd)->valor) { temp=*hd; //guarda el valor de inicio *hd =(*hd)->siguiente; //modifica el valor de inicio delete(temp);//borra el nodo de la memoria } else { //anterior apunta el primer nodo de la lista anterior=*hd; //actual apunta al segundo nodo de la lista actual=(*hd)->siguiente; //busca el elemento en la lista while(actual->valor !=item && actual !=null) { actual=actual->siguiente;//apunta al sig. nodo anterior=anterior->siguiente;//apunta al sig. nodo } if(actual !=null) { //modificar el apuntador en el punto de borrado temp=actual; anterior->siguiente=actual->siguiente; delete(temp);//libera la memoria else{ cout<<"Elemento no encontrado en la lista"; fflush(stdin); cin.get(); } } } Título: Re: me podrian decir que le falta a estos codigos porfa Publicado por: Shell Root en 26 Octubre 2010, 06:00 am Código Título: Re: me podrian decir que le falta a estos codigos porfa Publicado por: do-while en 26 Octubre 2010, 23:52 pm ¡Buenas!
Si que he visto algun error en el primer codigo... (no he segguido leyendo porque la verdad resulta muy incomodo. Utiliza las etiquietas GeSHi que hay despues de la primera fila de botones para escoger el lenguaje que utilizas y pega tu codigo justo entre las dos etiquetas que te salen. Asi se resaltara el codigo y sera mucho mas facil leerlo. Otra cosa que debes hacer como bien ten han dicho, es que cada vez que tengas codigo entre dos llaves, o en un if o cualquier otra estructura, es añadir una tabulacion que dependa de eso. Asi tambien se leera mucho mas facil. Cuando hagas eso con el codigo que has puesto podremos seguir ayudandote. De momento puedo decirte que en el primer codigo, has asignado varias veces memoria dinamicamente a algunos de los punteros sin haberla liberado anteriormente. Esto es como todo. Lo usas, cuando no quieras usarlo lo liberas, y luego buelves a usarlo de nuevo. Tambien estas mezclando asignacion de memoria al estilo de C y de C++, eso no debes hacerlo nunca. En C++ tiene new y delete que son mucho mas comodos de manejar que malloc y free... Corrige lo que se te ha dicho y te indicaremos lo que puede fallar en tu codigo. ¡Saludos! |