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 - MAFUS

#401
Seguramente usar el depurador y situar breakpoints cerca de dónde posiblemente esté el fallo. Pero yo no uso. En mi caso hago que la aplicación escriba en stderr, que no pasa por ningún buffer y escribe directamente en la pantalla. Voy situándolos cerca de dónde creo que podría estar el fallo. Y si con eso no lo resuelvo empiezo desde el main para ir recorriendo las llamadas a funciones y llegar hasta el fallo. ¡

La verdad, me da pereza aprender a usar el depurador, ya lo hago yo con stderr, jajaja.
#402
Si lo haces con arrays de punteros
char* miArray[5]
deberás usar *alloc para conseguir dimensionar memoria antes de guardar una cadena en ella. Y cuando acabes con esas cadenas destruirlas con free. A lo mejor se te rompe por eso.

En cambio si todo son arrays ya tienes la memoria dimensionada, pero a diferencia de los punteros dimensionados con *alloc su ámbito empieza en la función que los declaró, ten presente eso.

Sea como sea a la hora de entregar palabras recuerda que tanto punteros como arrays se comportan como punteros y una función que espere un char* muy amablemente va a acoger un array:
Tanto si has hecho
char* miArray[AGENTE][PALABRAS]
cómo
char miArray[AGENTE][PALABRAS][LETRAS]
puedes pasar a la función que espera un char*
MiFuncion(miArray[nAgente][nPalabra])
#403
Programación C/C++ / Re: Arbol recursivo
17 Mayo 2018, 16:01 PM
Mira, es muy fácil:

El dato tiene una estructura clásica de árbol binario
typedef struct _nodo {
    int dato;
    struct _nodo *izq;
    struct _nodo *der;
} Nodo;


Y a partir de aquí se lee la función
void mostrarArbol(Nodo * arbol, unsigned contador){
No estaba puesto, pero considero unsgined a contador pues lo normal es que la raíz sea 0 y vaya ascendiendo a cada nivel, por tanto los números negativos no son aptos para este menester.
mostrarArbol recibe el puntero a un tipo Nodo para no andar todos los datos de cada estructura, contador indicará la profundidad del nivel a que se encuentra (esto lo saco de más adelante como veremos).

    if(arbol == NULL){
        return;
    }

Este es la condición de fin de recursividad. Ésta se detendrá al llegar a un nodo vacío, es decir, cuándo se esté fuera del árbol.

    else{
        mostrarArbol(arbol->der, contador+1);

Pero si la nodo forma parte del árbol se seguirá por su rama derecha. No hay que preocuparse por si está vacía, ya que hemos visto anteriormente que la función se encarga de terminar la búsqueda si eso pasa. Además se le indica a la función que el siguiente nivel será uno mas que éste, con contador+1. No se ha usado contador++ porque se quiere retener, para la actual instancia de la función, del valor que guarda.

        for(int i=0; i<contador; i++){
            cout << "   ";
        }
        cout << arbol->dato << endl;

Y por esto es por lo que se necesita el dato de contador: a cada nivel se le representa su profundidad con un espacio. Al final de los espacios se coloca el dato que hay en el nodo. Así la representación es más visual.

        mostrarArbol(arbol->izq, contador + 1);
    }
}

Se procede a realizar con la rama izquierda lo que se hacía con la derecha.
#404
Programación C/C++ / Re: tokens
17 Mayo 2018, 07:34 AM
Primero usa strchr para buscar la primera aparición de '\'', después inicia los ciclos de strtok. El resultado dáselo a atoi para conseguir el primer número válido. Hacer las sumas supongo que ya sabrás como hacerlo.
#405
Veo que no has entendido cómo se desarrolla la serie. Son dos series intercaladas, múltiplos de 2 y de -3. Ahí te lo dejo.
#406
La dirección será &A[fina*N]

Si hubieras hecho una verdadera matriz cuadrada la fila sería A[fila], más intuitivo.
#407
Puedes explicar lo que intentas hacer?
#408
Programación C/C++ / Re: Problema arrays
14 Mayo 2018, 10:10 AM
Eso es debido a que cuando i = 5 estás fuera del array y lo que hay es desconocido. Podrían ser datos de un programa anterior o podrían ser datos de otra variable del mismo programa, por eso no hay que salirse de los arrays.
#409
Programación C/C++ / Re: Problema arrays
13 Mayo 2018, 21:09 PM
Si son 5 filas el for va desde i=0 hasta i<5.

Ahora te queda por hacer otro for anidado que vaya desde j=0 hasta j<array y dentro de éste haces un putchar('*'). Ya fuera de este for, pero aun dentro del de i haces un putchar('\n') para cambiar de línea.
#410
Programación C/C++ / Re: Uso de Getchar DUDA
11 Mayo 2018, 22:53 PM
¿Sabes que hace getchar()?