Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: lucas85 en 26 Octubre 2010, 05:52 am



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
  1. print "Poner el código dentro de la etiqueta GeSHI"
  2. print "Estructura el código"
  3. if (tienes errores){
  4.  print "Mostrarlos"
  5. }else{
  6.  print "Para qué preguntas"
  7. }


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!