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

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


  Mostrar Mensajes
Páginas: [1] 2 3 4 5 6 7 8 9 10
1  Programación / Programación C/C++ / Re: Como liberar memoria en estructura dinámica [C] en: 13 Enero 2017, 15:24 pm
Me pregunto, al ser un array de estructura no debería hacer un bucle primero para liberar cada uno de los punteros, discúlpame la ignorancia. -

En tu caso sólo asignas un array de estructura por lo tanto basta con hacer free(b) y listo, un bucle seria necesario si tienes un array de punteros a estructura para así poder liberar cada elemento pero este no es el caso.
2  Programación / Programación C/C++ / Re: Ayuda con ejercicio basico en C en: 11 Diciembre 2016, 23:12 pm
En realidad C solo obvia la primera dimensión y transforma la firma a void leerMediciones(int *m[5])

En realidad sería un puntero a un array int (*m)[5] no un array de punteros int *m[5]
3  Programación / Programación C/C++ / Re: por favor denme una idea como hacer este codigo en: 20 Noviembre 2016, 22:49 pm
También puedes usar new sin excepción (nothrow) en ese caso retornara null si hubo un error

Código
  1. char* array = new (std::nothrow) char[30];
  2. if (array == NULL) {
  3.  // Errror
  4. }
4  Programación / Programación C/C++ / Re: Cadena de caracteres por referencia [C] en: 18 Noviembre 2016, 17:45 pm
A partir del estándar C99 se puede hacer lo que dices. En C++, también lo podrás hacer así.

Cabe aclarar que los array de longitud variable no forman parte del estándar de C++ pero algunos compiladores lo permiten como una extensión como por ejemplo g++.
5  Programación / Programación C/C++ / Re: Strtok--Dividir Fecha en: 10 Noviembre 2016, 19:38 pm
Que escriba por ejemplo 21*12-06 cuando deberia ser DD/MM/AN

Verifica el retorno de scanf

Código
  1. if(scanf("%d/%d/%d", &dia, &mes, &anyo) != 3)
  2.    //formato incorrecto
6  Programación / Programación C/C++ / Re: Estructuras en C (ISBN) en: 10 Noviembre 2016, 17:22 pm
Debes recoger los tres campos usando scanf o fgets no uses gets, luego concaternarlos en un buffer con snprintf para trabajar con ellos. Veo que usas un entero para el dígito de control, recuerda que también puede ser una X si el resto de la división por 11 es 10 los mas conveniente seria usar un char.
7  Programación / Programación C/C++ / Re: Capturar despues de un espacio en C en: 4 Noviembre 2016, 14:57 pm
Si usas gets, va a tener que tener cuidado con no desbordar el buffer.

Saludos!

Lo mejor es no utilizar nunca esta función, en su lugar tienes alternativas mas seguras como fgets, donde puedes indicar la longitud maxima del buffer además gets fue removido del estandar C11 por las razones que ya sabemos.
8  Programación / Programación C/C++ / Re: Ayuda para sacar coseno en C. en: 3 Noviembre 2016, 20:53 pm
El coseno en grados

Código
  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4. int main()
  5. {
  6.    float ang, fin;
  7.    printf("Ingrese: \n");
  8.    scanf("%f", &ang);
  9.  
  10.    fin = cos(ang * 3.14159265f / 180.0f);
  11.    printf("final %g", fin);
  12.  
  13.    return 0;
  14. }

Estas usando floats no ints, debes usar el especificador %f sino perderás precisión.
9  Programación / Programación C/C++ / Re: (Consulta) Inicializar arreglo de estructura en C en: 27 Octubre 2016, 14:29 pm
Como te dice el compilador te faltan llaves, quedaría así

Código
  1. vec3 vertices[4] =
  2. {
  3.    {{-size, -size, 0.0f}},
  4.    {{ size, -size, 0.0f}},
  5.    {{-size,  size, 0.0f}},
  6.    {{ size,  size, 0.0f}}
  7. };
  8.  
10  Programación / Programación C/C++ / Capturar segfault con try/catch en C++ en: 21 Octubre 2016, 01:05 am
 Este hilo lo creo a modo de aclaracion en referencia a otro hilo donde se discutio el mismo tema, en el cual el moderador de turno brindo información no del todo acertada, luego de manera arbitraria procedio a bloquear el hilo sin razon alguna. Lo cual me parecio injusto, ya que cerro la posibilidad de que otro usuario pueda opinar al respecto.

  En lo referente al tema, C++ dispone de una lista de excepciones establecidas que son lanzadas por throw producto de algun error, hay que dejar en claro que try/catch solo puede capturar excepciones lanzadas por throw, por tanto obviamente un segfault, division por cero no son inherentes al C++ estandar, es una situacion que se produce de manera inesperada a nivel hardware, por lo tanto ya es dependiente de cada OS y compilador la manera controlarlos.

Mas info: http://stackoverflow.com/questions/1823721/how-to-catch-the-null-pointer-exception

 Otra cosa es usar alguna extension del compilador para interpretar un segfault como una excepcion de C++ estandar (lo cual no es nada portable) como es el caso de Visual C++:

Citar
Exception Handling Model

You can set an exception handling model for your Visual C++ compiler with /EHs (or EHsc) to specify synchronous exception handling model, or /EHa to specify asynchronous exception handling model. The asynchronous model can be used to force the try{}catch(){} construction to catch both SEH and C++ typed exceptions (the same effect can be achieved with the _set_se_translator() function). If a synchronous model is utilized, SEH exceptions are not caught by the try{}catch(){} construction. Asynchronous model was the default in previous versions of Visual C++, but the synchronous one is the default in the newer versions.

Mas info: http://www.codeproject.com/Articles/207464/Exception-Handling-in-Visual-Cplusplus

https://msdn.microsoft.com/en-us/library/1deeycx5(v=vs.80).aspx

  




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