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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


  Mostrar Mensajes
Páginas: 1 [2] 3 4 5 6 7 8 9 10
11  Programación / Programación C/C++ / Re: "Capturar" Violación de segmento (`core' generado) en: 19 Octubre 2016, 23:09 pm
Hablando de CPU, si que se trataría de una excepción (lanzada por la CPU). Otra cosa es lo que considera C++/Sistema Operativo.

Tienes razón es una excepción lanzada por la CPU, pero el sistema operativo la envía como una señal de que ocurrió algún error a nivel hardware.
12  Programación / Programación C/C++ / Re: "Capturar" Violación de segmento (`core' generado) en: 19 Octubre 2016, 22:44 pm
No puedes usar los bloques try/catch para capturar un segmentation fault, porque no es una excepción mas bien es una señal que el sistema operativo envía como consecuencia al intentar acceder en alguna zona de memoria no permitida. Además no veo razón para hacer esto, porque continuar el programa después no es posible se invocaría comportamiento indefinido y esto no es nada seguro.
13  Programación / Programación C/C++ / Re: [C] Manejo de cadenas en: 19 Octubre 2016, 02:18 am
Un array solo lo puedes inicializar cuando lo declaras, en caso de no realizarlo, debes inicializar cada elemento manualmente.

Saludos.
14  Programación / Programación C/C++ / Re: Ayudenme con una duda en c en: 18 Octubre 2016, 17:45 pm
Yo para eliminar el molesto salto de linea utilizo strcspn()

Código
  1. buffer[strcspn(buffer, "\n")] = '\0';

Cuenta el numero de caracteres hasta encontrar el primer '\n' reemplazándolo por '\0'.
15  Programación / Programación C/C++ / Re: Programa para revisar los errores de sintaxis de un programa en C. en: 15 Octubre 2016, 19:44 pm
pero igual tengo la siguiente duda:
x en la línea 6 se iguala a col que vale 5, o sea, que para mí en la línea 8 reserva memoria para 5 enteros, luego en la línea 12 a la variable x le sumo col por lo tanto en la línea 14 x vale 10 y para mi criterio reservo memoria para 10 enteros, me podías decir en que estoy equivocado. -
Saludos.

No olvides que realloc reserva memoria en bytes, esto quiere decir que estas reasignando solo diez bytes, es decir espacio para dos enteros mas, teniendo en cuenta que un int es equivalente a cuatro bytes en un sistema de 32 bits. Por eso es importante no olvidar multiplicar size * sizeof(int).

Saludos.
16  Programación / Programación C/C++ / Re: Programa para revisar los errores de sintaxis de un programa en C. en: 15 Octubre 2016, 15:38 pm
Tienes dos errores importantes en tu ultimo codigo:

- Primero, la notacion fil * i + j no accede al array como 2D, esto sobreescribe en cada iteracion del bucle externo lo asignado previamente, puedes comprobar esto imprimiendo el array a parte, lo que buscas es i * col + j.

- Segundo, solo reservas espacio para siente enteros no para diez, afortunadamento solo logras asignar siente enteros al array debido al error mencionado, caso contrario estarias desbordando el array.

17  Programación / Programación C/C++ / Re: Programa para revisar los errores de sintaxis de un programa en C. en: 11 Octubre 2016, 16:03 pm
Les dejo una pregunta para tratar de que me den un empujoncito para comenzar, si la primera línea es:
Código
  1. include <stdio.h>
Como harían para encontrar el error. -

En primer lugar en el enunciado del ejercicio no se menciona detectar este tipo de errores, te aconsejo resolver primero lo propuesto luego intentar ir mas alla. Te puedo dar una idea de como lo puedes encarar, lo que puedes hacer es usar contadores para cada caso establecerlos a cero. Luego por ejemplo si encuentras una llave de apertura incrementar el contador correspondiente y decrementarlo si encuentras una llave de cierre, posteriormente verificar el contador

Saludos
18  Programación / Programación C/C++ / Re: Programa para revisar los errores de sintaxis de un programa en C. en: 10 Octubre 2016, 00:11 am
Debes colocar el indicador de posición al comienzo del fichero nuevamente

Código
  1. long int tamanioArchivo( FILE *ptrArchivo, long int tamanio )
  2. {
  3.    fseek(ptrArchivo,0,SEEK_END);
  4.    tamanio = ftell(ptrArchivo);
  5.    rewind(ptrArchivo); //volver al inicio
  6.    return tamanio;
  7. }
19  Programación / Programación C/C++ / Re: ¿Por qué es necesario fflush ()? en: 7 Octubre 2016, 16:29 pm
El buffer se vacía si ocurre alguno de estos tres puntos:

1) Cuando el buffer se llena.
2) Si el texto enviado a la salida estándar termina en '\n'.
3) Mediante la llamada a fflush(stdout).

En tu caso se puede omitir la llamada a fflush(stdout) ya que con el salto de linea se vacía el buffer.
20  Programación / Programación C/C++ / Re: Arreglo de cadenas con memoria dinámica (realloc) lenguaje C. en: 4 Octubre 2016, 03:09 am
También puedes usar array de punteros

Código
  1. char *frases[size]
  2. for (i = 0; i < size; i++)
  3.    frases[i] = malloc(len_frase * sizeof(char));
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