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

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 10 11 [12] 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 ... 83
111  Programación / Programación C/C++ / Re: segmentation fault en mi programa en: 29 Noviembre 2014, 16:29 pm
Hola, si pones cualquier cadena e imprimes rutatemp, te salen unos caracteres raros al principio:
Código:
Escribe el nombre de archivo para abrirlo

hola
  H♦/home/miusuario/hola
Process returned 255 (0xFF)   execution time : 8.799 s
Press any key to continue.
, quizás eso al pasarselo a fopen o a alguna función es lo que te está fallando. ¿cómo lo arreglo? pues inicializando todo el arreglo a 0 con memset (o con la función strcopy que te indica el compañero rir3760 en el siguiente post al mío).

Código
  1. void * memset ( void * ptr, int value, size_t num );
Fill block of memory
Sets the first num bytes of the block of memory pointed by ptr to the specified value (interpreted as an unsigned char).

En concreto tienes que poner esto para inicializar esa zona de memoria en cero:
Código
  1. memset(rutatemp, 0, 51);
Otra forma de hacerlo sin usar memset es:
Código
  1. char rutatemp[201];     //La ruta completa del archivo
  2. rutatemp[0] = '\0';



También deberías controlar la entrada con la funciones fgets + sscanf.

Además debes mirar si el archivo se ha abierto, si no te dará el segmentation fault. Con un simple if lo puedes comprobar:
Código
  1. archivo = fopen(rutatemp, "rt");
  2. if(archivo)
  3.    // Lo que quieras hacer con el archivo
  4. else
  5.    printf("Error al abrir el archivo");

Sé que no querías código pero la mejor manera es ejemplificando, la programación es aprender de los errores, si alguien te puede sacar de estos comederos de cabeza mejor.
Un saludo.
112  Programación / Programación C/C++ / Re: Como convertir int a string y viceversa? en: 28 Noviembre 2014, 21:48 pm
Bueno entonces si se usa std::string no es mejor usar std::stoi ( C++ 11 ).
Sin duda, no sabía de su existencia, gracias x64Core

Saludos  :rolleyes:
113  Programación / Programación C/C++ / Re: Como convertir int a string y viceversa? en: 26 Noviembre 2014, 00:56 am
La funciones que andas buscando es esta:
Código
  1. string std::to_string (int val);
  2. string std::to_string (long val);
  3. string std::to_string (long long val);
  4. string std::to_string (unsigned val);
  5. string std::to_string (unsigned long val);
  6. string std::to_string (unsigned long long val);
  7. string std::to_string (float val);
  8. string std::to_string (double val);
  9. string std::to_string (long double val);
Para convertir de int a string utiliza la función:
Código
  1. long int strtol (const char* str, char** endptr, int base);
Saludos.
114  Programación / Programación C/C++ / Re: Por que ésta pequeña función de invertir una lista enlazda funciona? en: 25 Noviembre 2014, 01:01 am
Hola ShadowA7X, es un código muy limpio y la verdad bastante bueno. Te pongo un ejemplo práctico de lo que hace el algoritmo. Tenemos una lista con 4 nodos (o lista da igual como los llames):

P Q R S

Sabemos que esos nodos tienen un puntero al nodo siguiente, y esos estan tal que asi:
P -> Q , Q -> R , R -> S y S -> NULL

(entendiendo esa flechita por, "el nodo P tiene un puntero que apunta a Q")

Lo que hace esto es invertir el sentido, es decir, que P apunte a NULL, Q apunte a P , R apunte a Q y S apunte a R. (entendiendo por apuntar, que el nodo tiene un puntero que apunta a otro nodo). Realmente no modifica la lista en sí, sino a quienes apuntan sus nodos, el meollo del asunto está aqui:
Código
  1. next=aux->sgte;
  2. aux->sgte=*inicio;

Saludos.
115  Programación / Programación C/C++ / Re: en: 21 Noviembre 2014, 16:25 pm
Hombre lo de poner nombre a las variables no se si se puede hacer, creo que no, lo que si puedes hacer es ir declarando punteros y reservando memoria y guardando esos punteros en un vector que luego eliminas, en ese caso es el segundo codigo que te he puesto. Tambien puedes hacer lo que te comenta Miky.
116  Programación / Programación C/C++ / Re: C++ Crear variables y objetos en tiempo de ejecución en: 21 Noviembre 2014, 10:42 am
No entiendo bien tu pregunta, si ya tienes definidas las cadenas en una variable ¿para qué quieres otras? , o quieres decir esto:
Código
  1. #include <iostream>
  2. #include <cstdlib>
  3.  
  4. int main(int argc, char *argv[])
  5. {
  6.    std::string sValores[3] = {"uno", "dos", "tres"};
  7.  
  8.    //Creamos las variables a partir de sValores
  9.    std::string cadenaUno  = sValores[0];
  10.    std::string cadenaDos  = sValores[1];
  11.    std::string cadenaTres = sValores[2];
  12.  
  13.    // O a un array constante de caracteres.
  14.    const char *cCadenaUno  = sValores[0].c_str();
  15.    const char *cCadenaDos  = sValores[1].c_str();
  16.    const char *cCadenaTres = sValores[2].c_str();
  17.  
  18.    std::cout << cadenaUno  << std::endl;
  19.    std::cout << cadenaDos  << std::endl;
  20.    std::cout << cadenaTres << std::endl;
  21.  
  22.    std::cout << cCadenaUno  << std::endl;
  23.    std::cout << cCadenaDos  << std::endl;
  24.    std::cout << cCadenaTres << std::endl;
  25.  
  26.    return EXIT_SUCCESS;
  27. }
O quizás te refieras a esto:
Código
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <string>
  4. #include <vector>
  5.  
  6. using namespace std;
  7.  
  8. int main(int argc, char *argv[])
  9. {
  10.    string sValores[3] = {"uno", "dos", "tres"};
  11.    vector<string*> variablesNuevas;
  12.    //Creamos las variables a partir de sValores
  13.    for(int i = 0; i!= sizeof(sValores)/sizeof(string); ++i)
  14.    {
  15.        string * tmp = new string(sValores[i]);
  16.        variablesNuevas.push_back(tmp);
  17.    }
  18.  
  19.    for(vector<string*>::iterator it = variablesNuevas.begin(); it != variablesNuevas.end(); ++it)
  20.    {
  21.        cout << **it << endl;
  22.        // Liberamos memoria
  23.        delete *it;
  24.    }
  25.  
  26.    return EXIT_SUCCESS;
  27. }
117  Programación / Programación C/C++ / Re: S.O.S : Programa que solucione sistemas Lineales x método de Gauss :) en: 20 Noviembre 2014, 21:13 pm
Crea una matriz con los coeficientes de las ecuaciones y ya aplicas gauss, resta las filas a lo bestia, aquí puedes multiplicar una fila por 253 si hace falta. De todas maneras despues de aplicar gauss puedes aplicar gauss-jordan y te da las soluciones del sistema.

Un saludo.
118  Programación / Programación C/C++ / Re: Por favor ayuda con un programa en C, números primos en: 8 Noviembre 2014, 19:01 pm
Poneis los códigos tan inentendibles que casi no puedo leerlos jajaja dejo el mío:

EDITO: CORREGIDO GRACIAS crack81 por avisar.

Código
  1. #include <stdio.h>
  2. #include <stdint.h>
  3. #include <stdlib.h>
  4. #include <math.h>
  5.  
  6. /**
  7.  *  \brief Función que calcula los primos que hay que sumar para llegar a un
  8.  *         numero.
  9.  *  \param number Numero al que hay que calcularle esos primos.
  10.  */
  11. void sumOfPrimes(uint64_t number);
  12.  
  13. /**
  14.  *  \brief Función que determina si un numero es primo o no lo es.
  15.  *  \param number Numero al que hay que determinarle su primalidad.
  16.  *  \return Esta función devolvera 1 si el numero es primo o 0 si no lo es.
  17.  */
  18. int  isPrime    (uint64_t number);
  19.  
  20. int main(int argc, char** argv)
  21. {
  22.    uint64_t number;
  23.    printf("Introduzca un numero: ");
  24.    scanf("%llu", &number);
  25.    sumOfPrimes(number);
  26.    return 0;
  27. }
  28.  
  29.  
  30. void sumOfPrimes(uint64_t number)
  31. {
  32.    // Si el numero es primo la suma ya esta hecha.
  33.    if(isPrime(number))
  34.        printf(" %llu", number);
  35.    else
  36.    {
  37.        uint64_t sum = 0;           // Variable para albergar la suma que vamos
  38.                                    // realizando.
  39.        uint64_t iterator = number;  // Iterador de numeros primos.
  40.        /* Si el iterador es par lo disminuimos en una unidad, porque un numero
  41.          * par nunca va a ser primo y así ganamos eficiencia.
  42.          */
  43.  
  44.        if(iterator%2 == 0)
  45.                    --iterator;
  46.        while(sum != number)
  47.        {
  48.            if(isPrime(iterator))
  49.            {
  50.                sum += iterator;
  51.                printf(" %llu", iterator);
  52.                iterator = number - sum;
  53.                if(iterator%2 == 0)
  54.                    --iterator;
  55.            }
  56.            /* Decrementamos iterator en dos porque un numero par no es primo y
  57.              * por tanto no nos interesa.
  58.              */
  59.            else
  60.                iterator -= 2;
  61.        }
  62.    }
  63. }
  64. int  isPrime    (uint64_t number)
  65. {
  66.    // El uno es primo.
  67.    if(number == 1)
  68.        return 1;
  69.    // El dos es primo.
  70.    if(number == 2)
  71.        return 1;
  72.    // Todos los numeros pares no son primos.
  73.    if(number % 2 == 0)
  74.        return 0;
  75.    uint64_t sqr = (uint64_t) sqrt(number);
  76.  
  77.    /*  Si el numero que da la raiz es par, lo decrementamos en una unidad pues
  78.      *  solo nos interesan los numeros impares, ya que un numero impar no es di
  79.      *  visible por un numero par.
  80.      */
  81.    if(sqr % 2 == 0)
  82.        --sqr;
  83.  
  84.    while (sqr > 1)
  85.    {
  86.        if( number % sqr == 0)
  87.            return 0;
  88.        sqr -= 2;
  89.    }
  90.    return 1;
  91. }
119  Programación / Programación C/C++ / Re: Por favor ayuda con un programa en C, números primos en: 8 Noviembre 2014, 18:14 pm
Me alegra tu opinión y , efectivamente se puede mejorar pero tal como indicas, no es plan de hacerle la tarea con virguerias.   ;)

Un fuerte saludo amigo crack81.

¡¡¡¡ Saluditos! ..... !!!!



Se puede afinar incluso un poquito más, descartando los impares del iterador. Pero no sé si poner el codigo, por lo de la tarea y eso..
120  Foros Generales / Foro Libre / Re: ¿qué matrial irradia mas calor? en: 6 Noviembre 2014, 22:38 pm
Ah, pues ahora me ha entrado la curiosidad, cuál es el material que menos absorbe?
Creo que la cerámica.
Páginas: 1 2 3 4 5 6 7 8 9 10 11 [12] 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 ... 83
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines