Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - avesudra

#611
Programación C/C++ / Re: puntero a funcion
4 Septiembre 2012, 01:29 AM
Guao yo no había tocado este tema en C , te dejo esto para que lo mires: http://publications.gbdirect.co.uk/c_book/chapter5/function_pointers.html , en C++ hay problemas con los cast de tipos a (void*)() , y es un coñazo, os dejo la salida y  confirmo que funciona, por cierto que modifique el código en la posición del array no importa , pues el valor de retorno son los 4 bytes esos, lo que pasa es que les hace un cast a int.
Valor retornado por f antes de mutar   ... f() = 1
Valor retornado por f despues de mutar ... f() = 8

Process returned 0 (0x0)   execution time : 0.009 s
Press any key to continue.
#612
Programación C/C++ / Re: funciones INT vs VOID
3 Septiembre 2012, 21:17 PM
Cita de: Oblivi0n en  3 Septiembre 2012, 17:17 PM
Si, supongo que en cualquier libro de estructuras de datos y algoritmos se tendrá que tratar estás cosas ( cuando hablo de "modelos matemáticos" son cosas sencillas eh, no te asustes  xD ).

El heap es el espacio de memoria reservado para cada programa para que almacene dinamicamente ( me explico fatal ), es decir, es como un contenedor para cada programa.

Un saludo!


P.D: No tengo nada en contra de los punteros a funcion , que lo parece  :xD
Me había asustado sí , lo tengo que reconocer jajaja, mmm digamos que es el espacio reservado de memoria dinámica, para cada programa? Pues a mi no me lo parece hombre, está bien que des tus explicaciones y el porqué de todo.
#613
Programación C/C++ / Re: funciones INT vs VOID
3 Septiembre 2012, 17:04 PM
Cita de: Oblivi0n en  3 Septiembre 2012, 16:44 PM
Cuando el programa maneja un gran numero de datos en memoria, lo que se suelen hacer es modelos matemáticos para evitar sobrecargar la memoria y desarrollar un algoritmo en consecuencia. Recuerda que los puntero además, son memoria dinámica, y van al heap, y este también tiene un espacio limitado... ( mucho mas limitado que el conjunto de la RAM )
Mmmm entiendo , pero no llego a ese nivel , ¿sabes de algún escrito o libro que hable sobre eso? , cualquiera de algoritmos y estructuras de datos supongo ¿no? , no sé lo que es el heap, presupongo que será un espacio limitado para la acumulación de punteros , ya lo buscaré , gracias por la información Oblivi0n.

¡Un saludo!
#614
Programación C/C++ / Re: funciones INT vs VOID
3 Septiembre 2012, 16:31 PM
Cita de: Oblivi0n en  3 Septiembre 2012, 16:13 PM
La mas correcta suele ser la de usar parametros, es mas simple de usar, no podemos atenernos a conceptos de uso de memoria por parte de un programa ( que los ordenadores de hoy en dia  no tienen 256k de memoria... )
Pero aún así si lo entiendes , puedes hacer un mejor programa digo yo.No te digo que para esto que es un simple número pero para un programa mayor que pongamos que use 600 MB de un array de estructuras... pues estaría bien usar punteros creo yo  :xD
#615
Programación C/C++ / Re: funciones INT vs VOID
3 Septiembre 2012, 15:54 PM
Cita de: xiruko en  3 Septiembre 2012, 15:40 PM
yo estoy contigo... quizas en el caso de int sea lo mismo, pero si la variable es por ejemplo un struct con varios campos, la diferencia si que es notable. por ejemplo:


struct prueba {
int a, b, c;
char d, f, *g;
float h, i, j;
};


aqui una variale struct ocupa 40 bytes y en cambio un puntero al struct ocupa 8 bytes.

un saludo!

por cierto, acabo de hacer un sizeof(int*) y a mi me da que son 8 bytes, igual que cualquier otro puntero.
Buena observación , pues claro igual con int no pero con otras cosas si como son las estructuras, ahora si que estoy con ustedes.Pues a mi me da 4 bytes con este código igual es que estoy compilando para 32 bits no sé:
#include<stdio.h>
int main(int argc , char * argv[])
{
   printf("Sizeof int* : %d bytes",sizeof(int*));
   return 0;
}

Sizeof int* : 4 bytes
Process returned 0 (0x0)   execution time : 0.025 s
Press any key to continue.
#616
Programación C/C++ / Re: funciones INT vs VOID
3 Septiembre 2012, 15:32 PM
Cita de: 0xDani en  3 Septiembre 2012, 15:30 PM
Yo diria la que menos memoria utiliza es la que pasa los dos numeros por referencia, ya que no se hace una copia de sus valores para operar.

Saludos.
Pero se pasa la referencia , y el puntero a int , vale 4 bytes... No lo sé seguro la verdad.

¡Un saludo!
#617
Programación C/C++ / Re: funciones INT vs VOID
3 Septiembre 2012, 15:18 PM
Depende de para qué , si entiendes punteros , el valor se pasa por referencia y entonces no hace falta que devuelva nada por lo tanto se utiliza void , pero si no pasas ningún puntero si te hace falta que devuelva algo por ser una función auxiliar pues no puede ser void, depende de para qué lo uses.Te pongo un ejemplo:

#include<stdio.h>
void sumar(int *num1, int num2)//Pasamos num1 por referencia y num2 por valor.
{
   *num1 += num2;//Asignamos al contenido num1 la suma del contenido num1 + num2.
}
void sumar(int *num1,int *num2)//Pasamos num1 y num2 por referencia.
{
   *num1+=*num2;//Asignamos al contenido de num1 la suma del contenido de num1 mas el contenido de num2.
}
int sumar(int num1, int num2)//Pasamos num1 y num2 por valor.
{
   return (num1+num2);//Retornamos su suma.
}
int main(int argc , char * argv[])
{
   int num1 = 2;
   int num2 = 3;
   sumar(&num1,num2);
   printf("Funcion void pasando num1 por referencia y num2 por valor , se suma el contenido de num1 a num2 y se asigna a num1.Resultado: %d\n\n",num1);
   //Reseteamos valores.
   num1=2;
   num2=3;
   sumar(&num1,&num2);
   printf("Funcion void pasando num1 y num2 por referencia   , se suma el contenido de num1 al contenido de num2 y se asigna al contenido de num1.Resultado: %d\n\n",num1);
   //Reseteamos valores.
   num1=2;
   num2=3;
   printf("Funcion int pasando num1 y num2 por valor y retornando su suma.Resultado: %d\n",sumar(num1,num2));
   return 0;
}

La salida por consola es:

Funcion void pasando num1 por referencia y num2 por valor , se suma el contenido
de num1 a num2 y se asigna a num1.Resultado: 5

Funcion void pasando num1 y num2 por referencia   , se suma el contenido de num1
al contenido de num2 y se asigna al contenido de num1.Resultado: 5

Funcion int pasando num1 y num2 por valor y retornando su suma.Resultado: 5


Es muchísimo más manejable la int , además usan la misma cantidad de memoria las trés , eso sí no sé si por que la int retorna ,igual es más lenta(a escala muy pequeña) no tengo ni idea.
#618
Nunca he programado en Java pero el NetBeans es un IDE ( entorno de desarrollo) y ese lo único que hace es hacerte más facil la tarea de llamar al compilador de java , que es un analizador de sintaxis el cual sabe crear un ejecutable a partir del código que le hayas dado , NetBeans de lo único que se encarga es de facilitar el trabajo. El JDK(Java depelovement kit) es un conjunto de herramientas de desarrollo el cual trae , el intérprete de java , el compilador de java , el generador de documentación de java y el visor de applets segun wikipedia ---> http://es.wikipedia.org/wiki/Java_Development_Kit

El IDE lo único que hace es que no tengas que comunicarte directamente con el JDK supongo si no que él se encarga cuando pulsas un botón y solo escribes código.
#619
Programación C/C++ / Re: ayuda para ordenar en c
3 Septiembre 2012, 00:16 AM
Cita de: durasno en  2 Septiembre 2012, 23:40 PM
guaww.... compila con esa cantidad???
Cada estructura ocupa:
52 bytes lo he calculado con sizeof porque el compilador las alinea para que sean óptimas según la arquitectura x86 o x64.
Un millon de estructutras de 52 bytes son 52.000.000 bytes.
Entre 1024 son 50781,25 Kilobytes.
Entre 1024 son 49,591064453125  megabytes de uso en memoria.

Eso y mucho más es posible para los ordenadores de hoy en día.

¡Un saludo!
#620
Programación C/C++ / Re: Aporte c++
2 Septiembre 2012, 05:12 AM
Está bastante bien pero piensa que no cumple con su prometido , es decir cualquier persona que tenga tu clase puede descifrar un mensaje , en el subforo de criptografía hay un taller y un manual de APOKLIPTICO bastante buenos por si quieres echarle una ojeada, eso sí son complicados. Yo hace no mucho hice un encriptador pero que se basaba en criptografía simetrica y ademas el algoritmo me lo habia inventado yo( era malillo) , consistia en cifrar el texto plano con la contraseña que quieras y al que se lo mandes lo descifra con esa contraseña.Pero bueno a pesar de la critica esa, has tenido una muy buena idea y además has implementado el cifrado cesar o sea que muy bien!

¡Un saludo!