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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


  Mostrar Mensajes
Páginas: 1 2 [3] 4 5 6 7 8 9 10
21  Programación / Programación C/C++ / Re: arrays y punteros. en: 24 Septiembre 2016, 04:59 am
 El nombre de un array no es en esencia un puntero, más bien dependiendo del contexto es convertido implícitamente a un puntero al primer elemento como en este caso sucede con array y *array al imprimirlos. También aclarar que al desreferenciar un puntero accedes al contenido apuntado por tal puntero en este caso el primer valor del array.
 
22  Programación / Programación C/C++ / Re: Ordenar lista simplemente enlazada en lenguaje C. en: 6 Julio 2016, 03:27 am
Te comento que me intriga la siguiente  linea de tu codigo

Código
  1. int tmp[cont];

No te marca error?

Es una característica que se agregó a partir de C99 pero se volvió opcional en C11, se les denomina array de longitud variable

Mas info:

https://en.m.wikipedia.org/wiki/Variable-length_array

Código
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5.    size_t n;
  6.  
  7.    printf("Ingresar longitud: ");
  8.    scanf("%d", &n);
  9.  
  10.    int array[n];
  11.  
  12.    for(int i = 0; i < n; i++)
  13.    {
  14. array[i] = i + 1;
  15. printf("%4d ", array[i]);
  16.    }
  17.    return 0;
  18. }
23  Programación / Programación C/C++ / Re: Problema con puntero a una memoria reservada en: 26 Junio 2016, 08:15 am
Buenas, estoy pasando un puntero(que apunta a cierta memoria reservada por malloc) como argumento de una función y adentro de la función quiero saber el largo del arreglo, lo quise hacer del siguiente modo pero me tira un error.

Si estas en Windows puedes usar _msize()

Código
  1. #include <stdio.h>
  2. #include <malloc.h>
  3. #include <stdlib.h>
  4.  
  5. int main( void )
  6. {
  7.   int *buffer = malloc(8 * sizeof(int));
  8.   printf("Size: %u\n",  _msize(buffer));
  9.   free(buffer);
  10.   return 0;
  11. }
  12.  

En el caso de Linux tienes malloc_usable_size()
24  Programación / Programación C/C++ / Re: Pasar vector de puntero a char a las funciones[C] en: 21 Junio 2016, 01:13 am
Tienes fugas de memoria en el interior del bucle en cada llamada a calloc() asignas un nuevo bloque de memoria a tmp y el anterior se pierde. Debes reservar espacio fuera del bucle o liberar en cada iteración y no olvides liberar al final en ambos casos.
25  Programación / Programación C/C++ / Re: Pasar vector de puntero a char a las funciones[C] en: 20 Junio 2016, 17:10 pm
como se pasan los vectores de punteros a las funciones.

Con

Código
  1. void f(char** array_ptr);

O

Código
  1. void f(char* array_ptr[]);
26  Programación / Programación C/C++ / Re: Tipo de dato bool en: 18 Junio 2016, 16:49 pm
En C99 se ha incorporado el tipo _Bool este solo puede contener los valores 1 y 0 si le asignas un numero mayor que uno este se igualara a uno. También se introdujo la librería stdbool.h donde dispones de bool un alias de _Bool y sus conocidas macros true y false.
27  Programación / Programación C/C++ / Re: (Ayuda) Segmentation fault sin razón aparente en: 15 Junio 2016, 05:03 am
Podría ser 0 == feof(file) en caso de ocurrir un error de lectura feof() retornara 0 causando un bucle infinito prueba con este cambio
Código
  1. 0 == feof(file) && !ferror(file)
28  Programación / Programación C/C++ / Re: Problema con programa c para binario en decimales en: 14 Junio 2016, 01:48 am
Vaya no me había fijado en la formula que se propuso pero bueno tal vez esto sirva

Código
  1. #include <iostream>
  2. #include <bitset>
  3.  
  4. int main()
  5. {
  6.    std::string buf;
  7.    float n = 0.75;
  8.    unsigned zero = n;
  9.  
  10.    !zero ? buf = "0." : buf = std::bitset<32>(n).to_string() + '.';
  11.    n = n - (int)n;
  12.    while(n > 0)
  13.    {
  14.        n = n * 2.0;
  15.        buf = buf + ((int)n >= 1 ? '1' : '0');
  16.        if((int)n >= 1) n = n - 1.0;
  17.    }
  18.    std::cout << (!zero ? buf : buf.substr(buf.find("1", 0))) << std::endl;
  19.    return 0;
  20. }
  21.  
29  Programación / Programación C/C++ / Re: Problema con programa c para binario en decimales en: 12 Junio 2016, 22:33 pm
solo encuentro programas cambien la forma entera en binario pero no lo decimales 

Te ofrezco una aproximación en C, el cual interpreta un float como un entero usando una union para luego procesar e imprimir cada bit

Código
  1. #include <stdio.h>
  2. #include <limits.h>
  3.  
  4. int main()
  5. {
  6.    size_t i;
  7.    unsigned msb = 1U << (sizeof(unsigned) * CHAR_BIT - 1);
  8.  
  9.    typedef union
  10.    {
  11.        float f;
  12.        unsigned u;
  13.    } type;
  14.  
  15.    type num;
  16.    num.f = 12.8830;
  17.  
  18.    for (i = 0; i < sizeof(float) * CHAR_BIT; i++)
  19.    {
  20.        putchar(num.u & msb ? '1' : '0');
  21.        msb >>= 1;
  22.    }
  23.    return 0;
  24. }
  25.  
30  Programación / Programación C/C++ / Re: Pasar a función un arreglo con punteros o con el nombre del arreglo como puntero en: 9 Junio 2016, 17:10 pm
¿En la función se crearía una copia de todo el arreglo?

No el array no es copiado en su totalidad solo una copia del puntero a su dirección.

¿de qué manera llamarían a la función y como lo recibirían?.-

Código
  1. int f(int array[1000])

Es lo mismo que

Código
  1. int f(int array[])

Código
  1. int f(int *array)

No importa la sintaxis siempre se pasa un puntero
Páginas: 1 2 [3] 4 5 6 7 8 9 10
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines