Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - geeke

#1
Cita de: NOB2014 en 13 Enero 2017, 14:25 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
Cita de: MAFUS en 11 Diciembre 2016, 20:06 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
También puedes usar new sin excepción (nothrow) en ese caso retornara null si hubo un error

Código (cpp) [Seleccionar]
char* array = new (std::nothrow) char[30];
if (array == NULL) {
  // Errror
}
#4
Cita de: ivancea96 en 18 Noviembre 2016, 16:11 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 C/C++ / Re: Strtok--Dividir Fecha
10 Noviembre 2016, 19:38 PM
Cita de: eduardo1012 en 10 Noviembre 2016, 19:26 PM
Que escriba por ejemplo 21*12-06 cuando deberia ser DD/MM/AN

Verifica el retorno de scanf

if(scanf("%d/%d/%d", &dia, &mes, &anyo) != 3)
    //formato incorrecto
#6
Programación C/C++ / Re: Estructuras en C (ISBN)
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
Cita de: MCKSys Argentina en  4 Noviembre 2016, 05:46 AM
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
El coseno en grados

Código (cpp) [Seleccionar]

#include <stdio.h>
#include <math.h>

int main()
{
    float ang, fin;
    printf("Ingrese: \n");
    scanf("%f", &ang);

    fin = cos(ang * 3.14159265f / 180.0f);
    printf("final %g", fin);

    return 0;
}


Estas usando floats no ints, debes usar el especificador %f sino perderás precisión.
#9
Como te dice el compilador te faltan llaves, quedaría así

Código (cpp) [Seleccionar]
vec3 vertices[4] =
{
    {{-size, -size, 0.0f}},
    {{ size, -size, 0.0f}},
    {{-size,  size, 0.0f}},
    {{ size,  size, 0.0f}}
};
#10
 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++:

CitarException 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