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

#61
Es un excelente libro el que estas leyendo; pero hubo un malentendido de tu parte; en el libro no lo recomiendan por podría conducir a una fuga de memoria, en el caso de que la memoria asignada no se haya liberado como claramente se menciona en la ultima parte es nuestra responsabilidad liberarla

Código (cpp) [Seleccionar]
int* vector = allocateArray(5,45);
free(vector);


Te invito a que vuelvas a leer mas detenidamente esta parte
#62
Sin usar el identificador  :silbar:

Código (cpp) [Seleccionar]
unsigned num = 12345;
unsigned *ptr = #

printf( "\nLa direccion %p contiene el valor %d\n\n", &ptr, *ptr );


#63
atoi() es inseguro, evita utilizarlo en lo posible a no ser en casos sencillos y controlados; esta función no proporciona ninguna funcionalidad para el tratamiento de errores. El problema más importante con esta es que conduce a un comportamiento indefinido en caso de desbordamiento; por eso es preferible usar strtol una alternativa mucha mas segura por obvias razones.
#64
size_t es un tipo sin signo por lo tanto, no puede representar ningun valor negativo. En su ejemplo , si su índice de bucle va a ser siempre mayor que cero, podría tener sentido usar size_t , o cualquier otro tipo de datos sin signo.
#65
Eso funciona sólo en el ámbito donde se declaró la matriz, si pasa a una función, entonces el nombre de la matriz se convierte en puntero , y sizeof no dará el tamaño correcto. El compañero no específico en que contexto lo utilizara, yo supuse que seria en una función.
#66
Al tratarse de un array de dos dimensiones la sintaxis correcta seria:

Código (cpp) [Seleccionar]
memset(array, 0, sizeof(array[0][0]) * m * n);

Donde m y n serian la cantidad de filas y columnas
#67
Tambien dispones de modf incluida en math.h la cual hace justo lo que buscas:

Código (cpp) [Seleccionar]
#include <stdio.h>
#include <math.h>

int main(void)
{
    double num = 32.125, fract, entero;

    fract = modf(num, &entero);
    printf ("Entera: %g\nDecimal: %g\n", entero, fract);

    return 0;
}


Saludos
#68
En C++ una cadena literal es considerada una constante, por lo tanto es imposible modificarla, en cambio en C es posible hacerlo pero nunca lo hagas, porque estarías invocando comportamiento indefinido, esto ocurre por dos razones:

- Los compiladores almacenan varias cadenas literales idénticas en la misma dirección, por lo que la modificación de uno podría cambiar los otros también.

- Las cadenas literales se almacenan con frecuencia en la memoria de sólo lectura, si intentas escribir aquí obtendrás un error en tiempo de ejecución.
#69
Programación C/C++ / Re: Ayuda Ejercicios C++
12 Diciembre 2015, 13:55 PM
En realidad lenguajes como C++ pueden soportar múltiples paradigmas de programación. Por ejemplo, C++ puede ser empleado para desarrollar software utilizando para ello un modelo de programación puramente orientado a objetos o bien puramente estructurado, en casos como el de C++ somos los programadores los que decidimos que utilizar.
#70
1. int *a[35] - significa que a es un array de punteros es decir cada miembro del array a es un puntero de tipo entero, cada miembro del array puede contener la dirección de un entero.

Código (cpp) [Seleccionar]
#include<stdio.h>

int main()
{
   int b = 3;
   int c = 4;
   int *a[2] = {&b, &c};
   printf("a[0] = %d, a[1] = %d\n", *a[0], *a[1]);
   return 0;
}


2. int (*a)[35] - aquí a es un puntero a un array de 35 enteros, es decir a apunta a un array que contiene treita y cinco enteros.

Código (cpp) [Seleccionar]
#include<stdio.h>

int main(void)
{
   int a[5] = { 0, 1, 2, 3, 4 }, i;
   int (*p)[5];
   p = &a;
   for (i = 0; i < 5; ++i)
       printf("%d ", (*p)[i]);
   return 0;
}