elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


  Mostrar Mensajes
Páginas: 1 2 3 [4] 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ... 161
31  Programación / Programación C/C++ / Re: [SFML] Alguien me ayuda con los movimientos del personaje?? en: 25 Mayo 2022, 15:53 pm
Si vas a tener gravedad quiere decir que para saltar le tienes que imprimir una fuerza vertical negativa a la hora del salto, el algoritmo de la gravedad se encargará de bajarle la velocidad y después de hacerlo descender.
32  Programación / Programación C/C++ / Re: Ayuda con implementacion algoritmo warshall en C en: 12 Mayo 2022, 14:04 pm
Pasa por aquí una copia del archivo de texto que usas.
33  Programación / Programación C/C++ / Re: Programa de taquilla de cine. Ayuda porfa en: 8 Mayo 2022, 20:38 pm
Entiendo que estás empezando pero tienes muchisimo código repetido, sobre todo lo referido al volver al menú o salir. Mételo todo eso es una función.
Los menús, esos switch en cascada cuestan muchísimo de manejar. Usa funciones para separar todo eso.
Muchas cosas están totalmente repetidas y solo cambia el nombre de la sala y el título de la película y tal. Lo demás es código repetido. Usa funciones con parámetros. El 90% del código son cosas repetidas. Arregla eso y le echamos un vistazo.
34  Programación / Programación C/C++ / Re: Ayuda con fichero y cadenas en C en: 4 Mayo 2022, 23:14 pm
Otra cosa que no se recomienda es que un realloc se realice sobre la misma variable, es decir:
Código:
datos=realloc(datos,sizeof(char*)*filas)
35  Programación / Programación C/C++ / Re: Asignar memoria con malloc() en C en: 17 Abril 2022, 23:42 pm
No, no está siendo utilizado de forma correcta. int no tiene un número de bits definido y depende de la implementación. Suponer que es de 4 bytes sólo va a hacer que el código funcione en máquinas que usen ints de 4 bytes. Mejor si usas sizeof(int).
36  Programación / Programación C/C++ / Re: Asignar memoria con malloc() en C en: 17 Abril 2022, 21:38 pm
Cuidado con ese malloc(4)

A mi me da
Código:
.data segment
global_initialized_var is at address 0000000000403010
static_initialized_var is at address 0000000000403014
.bss segment
static_var is at address 0000000000407030
global_var is at address 0000000000407970
.heap segment
heap_var_ptr is at addres 0000000000766960
.stack segment
stack_var is at address 000000000061FE14
The function's stack_var is at address 000000000061FDDC

Ya ves que la stack, al menos en mi máquina, está lejos del heap.
37  Programación / Scripting / Re: ordenar 3 valores de menor a mayor en: 17 Abril 2022, 21:25 pm
Creo que es Python
38  Programación / Programación C/C++ / Re: ¿como evito bugs usando argv y memcpy? en: 17 Abril 2022, 02:24 am
Pon un poco más de código y lo que usas en la línea de comandos para llamar al programa.

¿Porque usas char aqui?
Código:
char datos = (char)strlen(argv[1]);

¿Estas tan falto de memoria?
39  Programación / Programación C/C++ / Re: [C] [solved] Comportamiento inesperado en: 6 Abril 2022, 10:50 am
Ok, pero sí, también tenías ese problema con el retorno, aunque aparentemente te funcionara el programa.
40  Programación / Programación C/C++ / Re: [C] [unsolved] Comportamiento inesperado en: 5 Abril 2022, 00:05 am
Estas devolviendo una dirección de la pila que ya se ha liberado. output, de la función center, es un array y por tanto se dimensiona como variable local perteneciente a dicha función. Cuando la función termina la pila decrece y buffer, que apuntaba al inicio del array, ahora apunta a una dirección de la cual no tienes control.

Si quieres devolver esa cadena debes generarla en el montón (heap) y de esta forma va a persistir. Y sí, si eliminas esa línea del \0, tendrás cosas raras porque strcat busca ese carácter para empezar a copiar la cadena origen.

Igualmente, como has generado la cadena con malloc, debes liberarla con free.

Código
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4.  
  5. char* center(int, char, char *);
  6.  
  7. int main() {
  8.    char* pstr = center(30, '*', "hola");
  9.    printf("Value: %s\t Address: %p\n", pstr, pstr);
  10.    free(pstr);
  11. }
  12.  
  13. char* center(int width, char fc, char* str) {
  14.    char* buffer = malloc((width+1) * sizeof(char));
  15.    int   cc = 0, n = 0;
  16.  
  17.    cc = strlen(str);
  18.    n = (width - cc) / 2;
  19.  
  20.    for(int i = 0; i < n; ++i)
  21.        buffer[i] = fc;
  22.    buffer[n] = '\0';
  23.  
  24.    strncat(buffer, str, cc);
  25.  
  26.    for(int i = strlen(buffer); i < width; ++i)
  27.        buffer[i] = fc;
  28.    buffer[width] = '\0';
  29.  
  30.    return buffer;
  31. }
Páginas: 1 2 3 [4] 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ... 161
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines