• Miércoles 20 de Noviembre de 2024, 14:18

Mostrar Mensajes

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


Mensajes - Eternal Idol

Páginas: 1 ... 3 4 [5] 6 7 ... 205
101
C/C++ / Re: La variable local no se destruye?
« en: Martes 19 de Octubre de 2010, 22:26 »
¿Sale 666 con el codigo que te deje en lugar de 3, no? Al salir de su ambito la variable no es mas accesible efectivamente desde el punto de vista del lenguaje (no podes referenciar a local fuera de funcion) y tambien eventualmente a efectos practicos, el codigo original funciona de casualidad debido a que es simplemente un ejemplo.

Una funcion al comenzar "reserva" memoria en la pila restandole al puntero de la pila (registro esp) para sus variable locales y al retornar lo que hace es dejar la pila apuntando a donde lo hacia antes de ser llamada (sumandole lo que antes le resto), pero no pone esa memoria usada a 0 o algo asi, esa memoria pasa a estar disponible para la proxima funcion que sea llamada.

La mejor forma de ver como funciona es depurandolo instruccion por instruccion (de ensamblador).

102
C/C++ / Re: La variable local no se destruye?
« en: Martes 19 de Octubre de 2010, 17:43 »
En todo momento la variable, al ser local, esta en la pila.

Código: C++
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. void funcion(int* &p)
  5. {
  6.  int local = 3;
  7.  
  8.  p = &local;  
  9. }
  10.  
  11. void joder()
  12. {
  13. int chau[] =
  14. {
  15. 666, 666, 666, 666, 666
  16. };
  17.  
  18. }
  19.  
  20. int main()
  21. {
  22.  int numero;
  23.  int *n = &numero;
  24.  numero = 2;
  25.  
  26.  funcion(n);
  27.  joder();
  28.  
  29.  cout << *n << endl;
  30.  cout << numero << endl;
  31.  system("PAUSE");
  32.  
  33.  return 0;  
  34. }
  35.  

103
ASM (Ensamblador) / Re: DTA - como obtener file date, time and size?
« en: Domingo 10 de Octubre de 2010, 14:39 »
Para poder mostrarlo en pantalla tenes que transformar el numero en cadena.

Si tenes 12345 tenes que generar una cadena con los numeros ASCII correspondientes:
49,50,51,52,53

104
ASM (Ensamblador) / Re: DTA - como obtener file date, time and size?
« en: Sábado 9 de Octubre de 2010, 02:06 »
¿Lo depuraste como te dije? Podes usar debug.com.

Usar ese servicio de la interrupcion 21h para escribir en consola de esa manera no es correcto, ese servicio recibe como parametro una CADENA y no valores enteros.

105
ASM (Ensamblador) / Re: DTA - como obtener file date, time and size?
« en: Viernes 8 de Octubre de 2010, 13:24 »
Los datos que queres estan ahi mismo, junto al nombre, en la estructura que devuelven esos dos servicios de MS-DOS.

http://www.ctyme.com/intr/rb-2977.htm
http://www.ctyme.com/intr/rb-2979.htm

Te recomiendo depurar el programa para entenderlo mejor, para hacerlo simple si agregas justo despues de llamar a FindFirstFile o FindNextFile esto:
Código: ASM
  1. mov cx, [fsize]
  2.  

Vas a tener el tamaño en el registro cx (tambien tenes ftime y fdate definidos en la estructura).

106
C/C++ / Re: Cómo leer un sector del disco
« en: Miércoles 22 de Septiembre de 2010, 13:26 »
Despues de tener un HANDLE al volumendisco en cuestion usas ReadFile.

107
C/C++ / Re: Cómo leer un sector del disco
« en: Martes 21 de Septiembre de 2010, 10:45 »
Click aca para el link que dejo rfog.

108
La taberna del BIT / Re: feliz día del programador
« en: Martes 14 de Septiembre de 2010, 15:56 »
Felicidades a todos  :good:  :good:  :good:


PD. Jajaja buena aclaracion del aumento  :beer:

109
ASM (Ensamblador) / Re: Como "botar " Windows xp
« en: Jueves 9 de Septiembre de 2010, 13:39 »
Tenes que hacer un modulo de modo Kernel, el codigo seria tan simple como:

Código: ASM
  1. mov eax, 0
  2. mov eax, [eax]
  3.  

110
La taberna del BIT / Re: Cuentame Un Chiste
« en: Jueves 9 de Septiembre de 2010, 13:29 »
:D  :D  :D  :lol:   :good:

111
C/C++ / Re: Compilación
« en: Jueves 2 de Septiembre de 2010, 11:40 »
En este momento no se me ocurre otra cosa que declararlos.

112
C/C++ / Re: Solucionen este conveniente II Gracias
« en: Lunes 30 de Agosto de 2010, 16:15 »
No, mejor no uses productos de Borland ... son de mala calidad  :devil:

113
C/C++ / Re: warnings en servidor hecho en c++
« en: Jueves 26 de Agosto de 2010, 16:10 »
Haciendo coincidir los tipos ... o forzando un casting ...

114
C/C++ / Re: Duda en ejercicio
« en: Jueves 26 de Agosto de 2010, 11:47 »
Te advierto que no se hacen tareas. ¿Que hiciste hasta ahora, nada?

115
C/C++ / Re: Solucionen este conveniente II Gracias
« en: Jueves 26 de Agosto de 2010, 11:46 »
No, eso siempre da 3 ...

116
C/C++ / Re: Arreglos de punteros.
« en: Jueves 26 de Agosto de 2010, 11:28 »
leusss: para poder escribir en la variable tenes que pasar su direccion, ahora la estas pasando por valor. &a y en la funcion ***.

ivanmvega: de esa manera pasas la direccion de un puntero y no de un doble puntero como el intenta.

117
C/C++ / Re: Arreglos de punteros.
« en: Miércoles 25 de Agosto de 2010, 14:24 »
Esta mal, sin duda pero no me creas a mi, hacelo simple:

Código: C
  1. a = 0;
  2. matriz_coprimos(a, n);
  3. printf("El valor de a es: %.8Xrn", a);
  4.  

No podes simplemente pasar &a, tenes que cambiar la funcion tambien.

118
C/C++ / Re: Solucionen este conveniente II Gracias
« en: Miércoles 25 de Agosto de 2010, 13:05 »
i++ es post-incremento, ++i es pre-incremento, tal vez por eso vez una diferencia ... pero despues de ser ejecutados el resultado debe ser el mismo (incrementar en uno).

119
C/C++ / Re: Arreglos de punteros.
« en: Miércoles 25 de Agosto de 2010, 12:57 »
No lo mire mucho pero al compilar (como C) el VC++ da un warning crucial:
(32) : warning C4700: uninitialized local variable 'a' used

Para poder cambiar la direccion a la que apunta la variable a desde la funcion matriz_coprimos tenes que pasar la direccion de esta variable (&a) y no su valor como estas haciendo ahora.

120
C/C++ / Re: Copiar doble puntero C
« en: Martes 24 de Agosto de 2010, 18:00 »
De nadas  :good:

121
C/C++ / Re: Copiar doble puntero C
« en: Lunes 23 de Agosto de 2010, 17:42 »
mat = matAux esta bien, liberar la memoria como te dije antes esta mal, podes hacer algo muy simple como matAux = 0 si queres y efectivamente si es una variable local al terminar el metodo ya no puede ser referenciada al desaparecer su ambito.

122
C/C++ / Re: Copiar doble puntero C
« en: Lunes 23 de Agosto de 2010, 15:49 »
Cita de: "player_"
Lo que quiero hacer es crear una matriz dinamica "mat", crear una matriz auxiliar "matAux", liberar la memoria de "mat" creada anteriormente, hacer que "mat" apunte al mismo contenido que "matAux" y liberar la memoria liberada por "matAux".

No mire el codigo y solo lei hasta aca, hay un problema de logica, reservas memoria 2 veces y liberas memoria 2 veces, eso es correcto PERO entonces no podes pretender tener un puntero valido.

mat = memoria_1
mataux = memoria_2
liberar memoria_1
mat = mataux = memoria_2
liberar mataux = memoria_2 = mat

123
La taberna del BIT / Re: Feliz Cumpleaños
« en: Lunes 23 de Agosto de 2010, 13:12 »
Mas vale tarde que nunca: feliz cumpleaños  :good:



PD. Edo todavia seguimos firmes aca eh  :hola:

124
ASM (Ensamblador) / Re: ASM Begginer...
« en: Martes 17 de Agosto de 2010, 16:04 »


Ese libro arranca de 0.


  • Esto es assembly: http://es.wikipedia.org/wiki/Lenguaje_ensamblador
  • El mejor ensamblador para MS-DOS y Windows es MASM/32.
  • Google o compra el libro.
  • Para depurar y para optimizar (hablamos de PCs, en los microcontroladores es usado para desarrollo tambien).
  • Si.
  • Son instrucciones ...
  • No pero pueden ayudar a aprender mas rapido.

125
C/C++ / Re: Acceder a una clase sólo como lectura
« en: Sábado 14 de Agosto de 2010, 20:29 »
¿No seria mejor declarar esos miembros privados y hacer metodos getter/setter? Podrias implementar la sincronizacion en los metodos, no se si pensaste en eso (mutex, secciones criticas, etc.).

Páginas: 1 ... 3 4 [5] 6 7 ... 205