|
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 ... 101 102 [103] 104 105 ... 205
2551
« en: Viernes 30 de Marzo de 2007, 18:31 »
Si hay algo equivalente pero para recibir (sobre lo que trata el hilo) seria interesante que lo publicaras.
2553
« en: Viernes 30 de Marzo de 2007, 17:54 »
Bah ... nada como to goto vs to not goto
2554
« en: Viernes 30 de Marzo de 2007, 17:43 »
Concuerdo con Angel_K_ido, asi como se le hubiera dado la respuesta aca y eso hubiera beneficiado a cualquier que leyera el mensaje me parece que lo correcto seria publicar esa solucion.
Igualmente se puede hacer usando sockets y el protocolo correspondiente.
2555
« en: Viernes 30 de Marzo de 2007, 17:15 »
Mmm ... fijate bien que dice justo antes de reiniciar cuando intentas instalar desde el CD ...
2556
« en: Viernes 30 de Marzo de 2007, 17:03 »
window->ejecutar->cmd, y luego me dirijo a la carpeta I386, y ahora como busco los ejecutables ?
BYTE. No, eso te daria el mismo resultado que ejecutandolo desde Windows ya que no es MS-DOS sino una consola. Yo te decia de bootear en MS-DOS, puro, real, de verdad, sin Windows. ¿Ya hiciste una particion para el Windows de 64 bits?
2557
« en: Viernes 30 de Marzo de 2007, 16:56 »
Deberia arrancar automaticamente y de ser una maquina de 32 bits deberia darte algun tipo de error en pantalla, al menos Vista lo hace.
Bootea desde MS-DOS y busca los ejecutables en i386.
2558
« en: Viernes 30 de Marzo de 2007, 16:45 »
como seria con la maquina virtual ??? Podes usar Virtual PC 2007 que es gratis para hacer una maquina virtual PERO que yo sepa no soporta que le instales S.O.s de 64 bits. decidi formatearla e instalar todo desde cero, y cuando termino instale el visual studio completo !!!!! y funcionaban todos mis instaladores sin ninguna excepcion, incluso los que habia echo en el 2002- Desinstale el visual studio y solo deje las versiones de framework 1.1 y 2.0, y mis programs siguieon funcinando.
Parece que la maquina tenia un mal funcionamiento (incluso tenia bastantes virus).
2559
« en: Viernes 30 de Marzo de 2007, 15:37 »
Usa el Dependency Walker para ver con que nombre esta siendo exportada tu funcion: http://www.dependencywalker.com/
2560
« en: Viernes 30 de Marzo de 2007, 15:08 »
pero tu nunca has mostrado que esas 4 apunten a 4 nuevas direcciones de memoria, eso es lo que he mostrado yo. float **float_values = (float**)malloc(4 *sizeof(float*)); ZeroMemory(float_values, 4 *sizeof(float*)); printf("%p\r\n", *float_values); for (int x= 0; x < 4; x++) { float_values[x] = (float*)malloc(sizeof(float)); } printf("%p\r\n", *float_values);
¿Te parece que no apuntan a direcciones de memoria nueva? Primero son cero para tu informacion. ¿Si o no? ¿Necesitan usar un triple puntero?
2561
« en: Viernes 30 de Marzo de 2007, 15:02 »
para nada, eso no es lo que existe ahi.
El puntero NO es las 4 posiciones de memoria, el puntero (float**) esta localizado en una posición memoria X y el contenido en esa posición de memoria es la dirección de la 'primera ' posición de memoria de 4 reservadas. Si yo reservo 16 bytes tengo cuatro direcciones de memoria, aunque no te lo creas y puedo hacer que esas apunten a cuatro nuevas direcciones de memoria que me de malloc y esas direcciones ocupan el tamaño de un float. Por lo tanto son punteros a punteros.
2562
« en: Viernes 30 de Marzo de 2007, 14:14 »
si es como decis, en la primera linea reservas memoria para los dobles punteros, en el bucle para los punteros pero donde reservas para las variables que apuntan los punteros? Variable tenemos siempre una sola: float_values, a esta le asignamos la direccion de memoria que nos devuelve el primer malloc y cuyo tamaño es de 16 bytes (de memoria contigua): float_values es igual a DIR0 que al principio es: DIR0: INDEFINIDO DIR1: INDEFINIDO DIR2: INDEFINIDO DIR3: INDEFINIDO Entonces hacemos un bucle donde asignamos eso con punteros a otra memoria reservada para cada uno del tamaño necesario. DIR0: float * DIR1: float * DIR2: float * DIR3: float * Tenemos entonces que float_values[X] apunta a un float *, es un puntero que apunta a un puntero, no a un valor, es un doble puntero. Por eso para poder obtener el valor tenemos que hacer *float_values - . Si hacemos *float_values obtenemos DIR0 (ES UN PUNTERO QUE APUNTA A UN PUNTERO) y si hacemos **float_values obtenemos *DIR0 que en este caso es el float cuyo valor es 3.51, podes verlo asi:
float **float_values = (float**)malloc(4 *sizeof(float*)); ZeroMemory(float_values, 4 *sizeof(float*)); printf("%p\r\n", *float_values); for (int x= 0; x < 4; x++) { float_values[x] = (float*)malloc(sizeof(float)); } printf("%p\r\n", *float_values);
En vez de tener memoria indefinida ahora sabemos que tenemos cuatro punteros nulos al usar ZeroMemory (una simplificacion de memset) sobre toda la memoria. Primero vemos que *float_values (equivalente a float_values[0]) es justamente 0, apunta a 0 y despues es igual a lo que devuelva malloc. Lo mismo pasa con los otras 3 siguientes direcciones de memoria, primero seran punteros nulos y despues punteros a float. No entiendo que hace la s. Nada, problemas de copy + paste, ahi lo cambie.
2563
« en: Viernes 30 de Marzo de 2007, 09:26 »
El primer grafico no representa lo que yo le dije que hiciera, te lo dejo con el codigo y tal vez lo entiendas. Hay cuatro direcciones de memoria (punteros float **) reservadas con la primera linea del codigo y estas apuntan a otras cuatro direcciones de memoria (punteros float *) reservadas en un bucle en la segunda linea. Por lo tanto tenemos 4 PUNTEROS (float **) A PUNTEROS (float*) que apuntan a cuatro valores distintos asignados en las lineas siguientes. Posteriormente vemos los valores en pantalla y liberamos primero los cuatro float * y despues los cuatro float **. ¿No es lo que muestra tu grafico, no? Eso es un puntero a puntero, eso es lo que pidio AnioN y lo que vos propones es un PUNTERO, A PUNTERO, A PUNTERO (TRIPLE PUNTERO) que obviamente contiene un PUNTERO A PUNTERO (DOBLE PUNTERO) que es lo que yo propongo. Considero entonces que estas dando una solucion mas compleja que el problema planteado. float **float_values = (float**)malloc(4 *sizeof(float*)); for (int x= 0; x < 4; x++) { float_values[x] = (float*)malloc(sizeof(float)); } *float_values[0] = 3.51; *float_values[1] = 4.62; *float_values[2] = 5.73; *float_values[3] = 6.84; for (int x= 0; x < 4; x++) { printf("%f\r\n", *float_values[x]); } for (int x= 0; x < 4; x++) { free(float_values[x]); } free(float_values);
Este grafico si representa mi codigo:  Notese que puedo acceder a los datos con dos indirecciones, por algo sera, es un puntero a un puntero. ¿AnioN te parece que lo que vos querias era eso que dice JuanK? JuanK hacenos el favor y mostranos tu codigo completo que sirva para trabajar con 4 punteros a punteros.
2564
« en: Viernes 30 de Marzo de 2007, 00:10 »
Como quieras, que yo sepa esto empezo por tu insistencia en la necesidad de usar un triple puntero cuando el codigo de AnioN usaba un doble puntero, segun yo y otras personas para reservar cuatro punteros a puntero no necesitas un triple puntero, ahi deje un ejemplo y en las paginas hay otro. Es todo lo que tengo que decir al respecto.
2565
« en: Jueves 29 de Marzo de 2007, 23:49 »
Pues yo no se, pero para mi que estamos hablando de lo mismo: ¿Vos ves que alguien use triple puntero para esto en algun lado? Esa pagina lo unico que demuestra es que ni siquiera para varias dimensiones se necesita el triple puntero. Por esa casualidad, el tamaño de un puntero y de un puntero a puntero no es el mismo?
sizeof(**float) == sizeof(***float)
Obvio jeje, no es mas que una direccion de memoria, en x86 4 bytes/32 bits y en x86-64 8bytes/64bits.
2567
« en: Jueves 29 de Marzo de 2007, 23:13 »
float_values = (float***)malloc(4 *sizeof(float**)); Eso es un triple puntero ... float ***float_values = (float***)malloc(4 *sizeof(float**)); float_values[0] = (float**)malloc(sizeof(float) * 56); float_values[0][54] = (float*)malloc(sizeof(float)); *float_values[0][54] = 3.53;
Se reserva la memoria nada mas, lo cual, y gracias al cast, es un array de punteros sin inicializar. Tambien se le asigna a la variable local float_values el valor devuelto por malloc, para eso esta el cast sino daria error al no coincidir los tipos en la asignacion.
2568
« en: Jueves 29 de Marzo de 2007, 22:53 »
printf("%p\n", &cpp); // que diferencia hay entre esta linea y printf("%p\n", cpp); // esta
La primera obtiene la direccion en memoria de la variable local cpp y la segunda su contenido (el primer puntero por decirlo de alguna manera). Si queres obtener el doble puntero tenes que desreferenciar la variable cpp y eso se hace con el *, eso te daria la direccion de c y con doble ** obtendrias el valor de c. otra duda es, con este codigo:
Ahi lo que hace es crear 4 punteros en forma dinamica, no?, y si quiero crear en forma dinamica 4 punteros a punteros? No, lo que hace es reservar 16 bytes de memoria y asignarselos a float_values, exactamente asi es como normalmente se hace con dobles punteros. float **float_values; float_values = (float**)malloc(4 *sizeof(float*)); for (int x= 0; x < 4; x++) { float_values[x] = (float*)malloc(sizeof(float)); } *float_values[0] = 3.51; *float_values[1] = 4.62; *float_values[2] = 5.73; *float_values[3] = 6.84; for (int x= 0; x < 4; x++) { printf("%f\r\n", *float_values[x]); } for (int x= 0; x < 4; x++) { free(float_values[x]); } free(float_values);
2569
« en: Jueves 29 de Marzo de 2007, 19:46 »
hombre,el último que me ha contestado es el que tenia algo de idea de strings,en c++ si que existe el tipo string.Bueno no me habeis aclarado mucho.pero voy a haceros otra pregunta,relacionado con lo mismo...si yo quiero imprimir mi vector? Aca tenes un ejemplo funcional: string palabras[100]; for (int x = 0; x < 100; x++) { palabras[x] = ""; } //tambien podes usar palabras[x].clear(); palabras[0] = "hola"; cout << palabras[0] << endl; cout << palabras[1] << endl;
El primero pondra hola y fin de linea y el segundo solo fin de linea al haber sido inicializado correctamente.
2570
« en: Jueves 29 de Marzo de 2007, 19:33 »
Cuidado que estan confundiendo ... en C++ standard existe una clase (de la STL) llamada string. Tal vez para lo tuyo podrias hacer un for y asignarle "" a cada elemento ...
2571
« en: Jueves 29 de Marzo de 2007, 19:27 »
No se como es el caso de .NET en particular pero con VC++ en si mismo existen compiladores cruzados y desde un x86 se puede generar codigo para cualquier plataforma soportada por Microsoft como IA64, AMD64/EM64T y los procesadores de Windows CE.
2572
« en: Jueves 29 de Marzo de 2007, 09:52 »
Gracias por avisar lo de STALKER, tengo una amigo que lo estaba esperando anciosamente. Cuando le diga que salió se va a poner loco. (es fanatico del doom) De nadas, lo estuve jugando un poco mas y esta bueno! A mi los juegos de disparos en primera persona me marean, como que siento nauceas. No siempre, pero igualmente por eso no los juego tanto. Nunca fueron mis favoritos realmente, aunque en los ultimos tiempos estoy jugando a algunos que tienen algo de esto tipo Splinter Cell o Deus Ex. Si lo jugas con las luces apagadas da miedo? Juaz, ni idea, yo no juego con las lueces apagadas ningun juego El último juego con el que me entretuve fue Oblivion Rol en primera persona y tercera. Vi por ahi que subieron unos niveles nuevos para el juego pero no lo conocia, tampoco es que los juegos de rol me llamen mucho, suelo jugar mas deportivos (rugby, futbol, tenis) y aventuras graficas.
2573
« en: Jueves 29 de Marzo de 2007, 09:31 »
Reconozco que me equivoque, el otro dia dije que me parecia que una sola persona en el foro iba con mala leche y esta claro que no es para nada cierto. No solo te tomaste la molestia de buscar este hilo (de Agosto del 2006) sino que ademas vilmente lo resucitaste de forma solapada y al ver que nadie te seguia el juego tuviste que mostrar tus cartas, muy bien, espero que las sepas tirar ya que yo tengo una mano brava: y bien en que termino verdad ????? y nadie dijo nada verdad ???? Tu pregunta se responde sola. ¿En que termino esto cuando lo intento organizar un don nadie? En nada. ¿Cual es la diferencia entre esta propuesta y la que, segun vos, yo estime era una hazaña? Primero y principal no estuvo organizada por alguien como vos sino por el "gran jefe" de esta pagina que tiene la capacidad y el poder como para hacer lo que finalmente hizo: un chat, un contador de tiempo, etc. ¿Sos incapaz de ver mas diferencias? Te voy a decir la que en realidad es para mi la mas importante (espero que tengas tan buena memoria tambien para recordar que cuando preguntaron cuando era la proxima yo dije dentro de 5 años): ERA UNA CONMEMORACION DE LOS CINCO AÑOS DEL FORO. PD. Si realmente tenes algun problema no te preocupes que podes venir de frente y decirmelo en la cara (virtual ya que estamos muy lejos), yo no te puedo bannear del foro y los mensajes privados PARA MI quedan ahi.
2575
« en: Miércoles 28 de Marzo de 2007, 23:25 »
Por sierto, para arrays Dinamicos, ¿Que se hace? Primero obtenemos la estructura en si con: Elemento * sizeof(Estructura) Y despues le sumamos la posicion en que se encuentra el campo al que queremos acceder.Si tuvieramos una estructura con 3 campos siendo estos de tipo DWORD a,b y c. Entonces para acceder a b sumariamos 4 y a c 8 (a es 0). En MASM podes usar assume y solo tenes que calcular el valor inicial y usar la estructura: ;teniendo en eax Elemento * sizeof(Estructura) assume eax:ptr ESTRUCTURA mov ebx, [eax].a mov ecx, [eax].b mov edx, [eax].c
¿Cool, no?
Páginas: 1 ... 101 102 [103] 104 105 ... 205
|
|
|