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

#341
Lo mejor es cuando consigas el primer número lo asignas a mayor y a menor, después con cada número que te den vas operando.
#342
Ups, que no pegué la dirección. Aquí va: http://www2.elo.utfsm.cl/~lsb/elo320/clases/c3.pdf
#343
Te paso un documento que te irá muy bien para aprender a manejar la memoria. Es para C, pero cómo C++ está basado y es muy parecido en ese aspecto te funcionará igual para saber cómo maneja éste último la memoria.
#344
No, empiezas muy mal. Es como querer ser arquitecto y empiezas a leer planos. A parte de ver un montón de rayas y vislumbrar en ellas una columna aquí y un arco allá no verás nada más.
Detrás están todos los cálculos de cargas, resistencias de materiales, composición del forjado y del hormigón. Es decir: el código fuente, como un plano de una obra, es un resultado de todo un largo estudio que hay detrás.
Y ya si hablamos del kernel de un sistema operativo estamos hablando de temas mayores: manejo de memoria, interrupciones, asignación de tiempos de procesado, drivers, APIs.

Fíjate si tienes muchas cosas que aprender antes siquiera de empezar a ponerte delante de tu editor de código favorito.
#345
Hice este programa de prueba para abordar el problema
#include <stdio.h>

int **dato;

void f(int **dato, int max_fila, int max_columna) {
    for(int i=0; i<max_fila; ++i) {
        for(int j=0; j<max_columna; ++j) {
            dato[i][j] = (i+1)*(j+1);
        }
    }
}

void g(int **dato, int max_fila, int max_columna) {
    for(int i=0; i<max_fila; ++i) {
        for(int j=0; j<max_columna; ++j) {
            printf("%d\n", dato[i][j]);
        }
    }
}

int main() {
    int fila = 5;
    int columna = 3;

    dato = malloc(fila*sizeof(int*));
    for(int i=0; i<fila; ++i)
        dato[i] = malloc(columna*sizeof(int));

    f(dato, fila, columna);
    g(dato, fila, columna);
}


Y funciona perfecto. Después, regresando a tu código he visto otra cosa:
TABLE_TMS[i].NOM_ARCHIVO = PCB;
siendo PCB un const char*, argumento de la función. Esto podría dar error si se libera PCB de forma automática o manual. ¿Hace falta usar strdup?
#346
No sé cómo has declarado el dato Pagina **paginas fuera de la función.
Si es un array de dos dimensiones el argumento de la función debe ser un array de dos dimensiones donde obligatoriamente la de más a la derecha debe estar definida. Es decir:
Si has declarado el array en main() o dónde sea como
Pagina paginas[MARCOS][PAGINAS];
El argumento de la función debe ser
int* Escribir_swap( ..., Pagina paginas[][PAGINAS], ...) {
#347
El problema podría estar en la forma de tratar el argumento de la función Pagina **Paginas. Es un puntero a puntero por tanto toda información del tamaño de las dimensiones ha desaparecido, sólo se conoce el tamaño del tipo de dato. Esto hace que al usarlo como matriz en Paginas[i][j] el programa no sepa cuántos bytes deba saltar por cada incremento de i.
#348
Prueba con cin.ignore() o cin >> ws o while(getchar!='\n')
#350
Pues esto te funcionará en pocos sitios: como hemos dicho muchas veces el fflush, dice el estándar, solo está asegurado para flujos de salida. Para los flujos de entrada, como stdin, es a libre albedrío del creador del compilador que funcione.