• Domingo 11 de Mayo de 2025, 09:36

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 - m0skit0

Páginas: 1 ... 16 17 [18] 19 20 ... 100
426
Visual Basic 6.0 e inferiores / Re: Algun virus que afecte el funcionamiento?
« en: Martes 30 de Noviembre de 2010, 09:28 »
Cita de: "m0skit0"
Si pudieras poner una parte del código donde te falla, a lo mejor llegamos a algo

427
C/C++ / Re: Problemas como pasar char por referencia
« en: Martes 30 de Noviembre de 2010, 09:27 »
char[] es ya un puntero. No necesitas pasar char*[], que es un puntero de punteros a char. Si lo que quieres es modificar el array en la función y que se mantengan los cambios, con pasarlo como char[] te vale. Es decir:

Código: C
  1. void encriptar(char frase[], int longitud, int n)
  2.  
Con esto vas sobrado. Y ojo con los tamaños de los arrays como te indica alb.

Saludos

428
C/C++ / Re: problema con funcion
« en: Lunes 29 de Noviembre de 2010, 23:09 »
En una función tienes que declarar el nombre del parámetro además de su tipo, es decir:

Código: C
  1. int RecogeDatos(string nombre_del_parámetro)
  2.  
En el prototipo no hace falta, pero en la implementación de la función sí.

429
C/C++ / Re: Error Codigo!! Urge !! Problema al Leer Archivo !!
« en: Lunes 29 de Noviembre de 2010, 22:18 »
Puede ser que endl hace que se vacíe el buffer y se "empujen" los datos a la salida.

430
C/C++ / Re: funcion recursiva
« en: Lunes 29 de Noviembre de 2010, 22:09 »
Gracias, espero que tú también compartas con nosotros tus conocimientos  ^_^  :good:

431
C/C++ / Re: Error Codigo!! Urge !! Problema al Leer Archivo !!
« en: Lunes 29 de Noviembre de 2010, 17:49 »
Todos los nuevos en C caen en el mismo problema  :P

Código: C
  1. char * ruta_archivo;
  2.  
Aquí estás declarando un puntero a una cadena de caracteres, PERO no reservas memoria para ello. Por tanto tienes 0 espacio para tus caracteres. Tienes que hacer algo como

Código: C
  1. char ruta_archivo[256];
  2.  
Para reservar memoria para 255 caracteres, o bien usar malloc() (y free()) para reservar memoria dinámicamente.

De todas formas no necesitas char* para nada. Usa string, es mucho más cómodo.

432
C/C++ / Re: Error Codigo!! Urge !! Problema al Leer Archivo !!
« en: Lunes 29 de Noviembre de 2010, 13:57 »
No pones la declaración de ruta_archivo.

Usa la clase string en vez de char*, que para eso tienes C++  ;)

433
C/C++ / Re: algoritmos de planificacion
« en: Lunes 29 de Noviembre de 2010, 11:47 »
Supongo que te das cuenta de que esto se publicó hace más de 4 años, y encima posteas tu correo para que te breen a spam. Dos en el mismo lote  :good:

434
C/C++ / Re: funcion recursiva
« en: Lunes 29 de Noviembre de 2010, 11:43 »
Cita de: "morfus_bedxhed"
¿Lo que te refieres es qué el valor se guarda en el espacio almacenado para la función?
Algo parecido. En realidad es un espacio que comparten la función que llama y la función llamada.

Cita de: "morfus_bedxhed"
¿ ese espacio tiene límite?
Por supuesto, la memoria no es infinita.

Cita de: "morfus_bedxhed"
por que está definido como void (sin retorno) y no como un tipo de dato del C?
No está definido como void
Cita de: "morfus_bedxhed"
void inversa (char car)

Cita de: "morfus_bedxhed"
Claro que también aceptaría unas clasesitas de como se implementan las funciones C en padre ensamblador..
En IA32 (comúnmente llamada x86), el paso de argumentos a funciones se realiza a través de la pila. Esto es, se ponen en la pila los argumentos de la función en orden inverso a los declarados en C, usando la instrucción PUSH. En este caso, se pasa el char en la pila a inversa(). La función lo recupera con la instrucción POP. Acto seguido, inversa se llama a sí misma, con lo que inserta otro char en la pila usando igualmente PUSH, y la segunda llamada lo recupera igualmente con POP (ya que es el mismo código). Así se van acumulando los caracteres en la pila. Al volver, se leen los caracteres en orden inverso, y se libera el espacio en la pila al finalizar las funciones. Algunas veces el compilador también usa el registro EBP para indicar el comienzo de los argumentos para la función, evitando así acceder usando ESP (el puntero de pila). Las instrucciones PUSH y POP modifican ESP automáticamente.

Para más detalles, mira el fichero ensamblador que genera el compilador para este ejemplo, así lo verás más claro. Cualquier duda te la intento aclarar.

Saludos.

435
C/C++ / Re: return en swith case
« en: Lunes 29 de Noviembre de 2010, 11:33 »
Sí, pero es mala programación. Deberías hacerlo tal que:

Código: C
  1. char key_to_channel(uint16 mask)
  2. {
  3.     char ret = '?';
  4.     switch(mask)
  5.     {
  6.         case 1:
  7.             ret = 'A';
  8.             break;
  9.         case 2:
  10.             ret = 'D';
  11.             break;
  12.         case 4:
  13.             ret = 'G';
  14.             break;
  15.     }
  16.    
  17.     return ret;
  18. }
  19.  

436
Visual Basic 6.0 e inferiores / Re: Algun virus que afecte el funcionamiento?
« en: Domingo 28 de Noviembre de 2010, 14:09 »
Lo más probable es que sea una programación defectuosa (por ejemplo, no usar Option Explicit). También puede ser que se te hayan corrompido las librerías de VB6, aunque lo dudo mucho. Si pudieras poner una parte del código donde te falla, a lo mejor llegamos a algo. Lo que sí dudo es que sea un virus que sólo afecte a tu programa...

Saludos.

437
C/C++ / Re: Como guardar datos de la consola, en C
« en: Sábado 27 de Noviembre de 2010, 21:53 »
Eso que yo sepa sólo puedes hacerlo de 2 formas:

  • Creando un buffer para tus datos de salida, los almacenas allí y luego los vuelcas a un fichero
  • Creando un fichero temporal donde vayas guardando los datos, y luego guardarlo o borrarlo

438
Visual C++ / Re: Error: el puntero toma el valor 0xffffffff de la anda
« en: Sábado 27 de Noviembre de 2010, 21:51 »
^_^  ;)  :comp:

439
C/C++ / Re: Como guardar datos de la consola, en C
« en: Sábado 27 de Noviembre de 2010, 16:34 »
Cita de: "Gonxu16"
char texto = main();
Esto no tiene ningún sentido. Mejor explícanos con más detalle qué quieres hacer.

440
C/C++ / Re: Regresar vector lleno de una funcion a la función principal
« en: Sábado 27 de Noviembre de 2010, 15:47 »
No lo he probado, pero debería funcionar:

Código: C
  1. #include <stdio.h>
  2.  
  3. void relle_vector(int vector[])
  4. {
  5.        
  6.         printf("Primero: ");
  7.         scanf("%d", &vector[0]);
  8.         printf("Segundo: ");
  9.         scanf("%d", &vector[1]);
  10. }
  11.  
  12. int menor(int vector[])
  13. {
  14.         int menor;
  15.        
  16.         if(vector[0]>vector[1])
  17.         {
  18.                 menor=vector[0];
  19.         }
  20.         else
  21.         {
  22.                 menor = vector[1];
  23.         }
  24.  
  25.         return menor;
  26. }
  27.        
  28. int main(int argc, char *argv[])
  29. {
  30.         int vector[2];
  31.        
  32.         printf("Escriba dos numeros");  
  33.                      
  34.         relle_vector(vector);
  35.        
  36.         printf("El numero menor es %dn", menor(vector));
  37.        
  38.         return 0;
  39. }
  40.  
Un vector y un puntero son lo mismo en C.

441
Visual C++ / Re: Error: el puntero toma el valor 0xffffffff de la anda
« en: Sábado 27 de Noviembre de 2010, 15:43 »
-1 = 0xFFFFFFFF

442
C/C++ / Re: funcion recursiva
« en: Viernes 26 de Noviembre de 2010, 09:36 »
Cita de: "morfus_bedxhed"
no me reconoció la librería conio.h, ni tampoco la función getche sino getchar
Cita de: "morfus_bedxhed"
por cierto el system("pause") tampoco me jaló
Cita de: "morfus_bedxhed"
solo una duda, si char solo tiene límite de un 1byte, ¿por qué me recibe una cadena larga de hasta 20 caracteres?
Él usa Windows y tú al parecer no. Esas funciones no son estándar, de ahí mi comentario anterior:

Cita de: "m0skit0"
Personalmente, no usaría conio.h, pero eso ya es decisión de cada uno.

Cita de: "morfus_bedxhed"
solo una duda, si char solo tiene límite de un 1byte, ¿por qué me recibe una cadena larga de hasta 20 caracteres?
Es un char local a cada llamda de función. Mientras la función no retorne, ese valor sigue almacenado en la pila temporal de la función. Si quieres entenderlo más en profundidad, tendría que explicarte cómo se implementan las funciones C en ensamblador, pero para ello tienes que saber un poco de arquitectura de computadores. Si te interesa me dices y te lo cuento.

443
Novedades en SoloCodigo / Re: Problemas con el servidor
« en: Viernes 26 de Noviembre de 2010, 09:26 »
No hay bien que por mal no venga en este caso  :D

444
C/C++ / Re: funcion recursiva
« en: Jueves 25 de Noviembre de 2010, 16:29 »
Es lo mismo que te ha puesto Epa dos posts más arriba. De todas formas, enhorabuena.

445
C/C++ / Re: funcion recursiva
« en: Miércoles 24 de Noviembre de 2010, 18:10 »
Ok, pero antes lo habías formulado mal  ^_^

446
C/C++ / Re: funcion recursiva
« en: Miércoles 24 de Noviembre de 2010, 17:46 »
Buenas Epa.

Creo que te contradices, o no te he entendido:

Cita de: "Epa"
La idea es hace una funcion que capture un caracter con getche(), si este es '.' entonces retorna, sino se llama a si misma, imprime el caracter y retorna
Cita de: "Epa"
De esa forma cuando se ingrese el . se va a ir saliendo de las funciones
:huh:

Y efectivamente, getche() existe en conio.h. Mis disculpas. Pero creo que te equivocas, sí lee de la entrada estándar, sólo que no hace eco del carácter en pantalla.

Personalmente, no usaría conio.h, pero eso ya es decisión de cada uno.

Saludos

447
C/C++ / Re: funcion recursiva
« en: Miércoles 24 de Noviembre de 2010, 14:56 »
Ponme un poco lo que tienes hecho y lo vemos.

448
C/C++ / Re: funcion recursiva
« en: Miércoles 24 de Noviembre de 2010, 09:20 »
Tu problema realmente no tiene nada que ver con recursividad, sino con getch() (getche() no existe)  &lt;_&lt; A ver si ponemos títulos adecuados a los hilos...

En el curro no tengo entorno para C, pero algo así debería funcionar, ya me dices:

Código: C
  1. char* leer_hasta(char* buffer, char fin)
  2. {
  3.     if (buffer != NULL)
  4.     {
  5.         char c;
  6.         int i = 0;
  7.         do
  8.         {
  9.             c = getch();
  10.             buffer[i++] = c;
  11.         } while (c != fin)
  12.     }
  13.    
  14.     return buffer;
  15. }
  16.  

449
C/C++ / Re: array muy grande
« en: Miércoles 24 de Noviembre de 2010, 09:03 »
Pero siempre asegúrate de que el SO te acepta la petición, tal y como te he puesto en el ejemplo. Y siempre solicita la memoria que vayas a utilizar, no toda la disponible "por si acaso". Si no sabes cuánta memoria total vas a usar, haz malloc() sólo de la que estés seguro y después puedes usar realloc() para agrandar ese mismo bloque.

Suerte con ello.

450
C/C++ / Re: array muy grande
« en: Martes 23 de Noviembre de 2010, 18:24 »
Cita de: "kaskade"
10 millones ya no.
10 millones entra de sobra. El número que te he puesto arriba (0x80000000) son 2.147.483.648. size_t en sistemas de 32 bits acepta hasta 4.294.967.295.

Saludos

Páginas: 1 ... 16 17 [18] 19 20 ... 100