[C con Clase] Punteros a Matrices como argumento a función

Miguel Olave molavec en gmail.com
Sab Nov 20 17:44:50 CET 2010


Estimados:

   Como siempre es un agrado recurrir a esta lista, pues de seguro sé que
enontraré una solución para un problema, creo, fácil de resolver para muchos
de ustedes pero desde ayer estoy pegado y no me puedo destrabar.

Lo que ocurre es que quiero realizar funciones con matrices de diversos
tamaños pero no sé como pasarle estas como argumento a una función.

He aquí un ejmplo sencillo de una de las formas de como lo he tratado de
hacer.

n: número de filas
M: número de columnas


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

void print_matrix(float **pm, int n, int m){
    int i, j;
    for (i=0; i<n; i++){
        for (j=0; j<m; j++){
            //printf("%f\t", matrix[i][j]);
            printf("%f\t",*(*(pm+j)+i));
        }
        printf("\n");
    }
}

void main(int argc, char* argv[]){

    int i, j;
    float p[2][2] = { {1, 2}, {2, 1} };

    printf("matriz p:\n");print_matrix(p,2,2);printf("\n");
    printf("-----------\n");

}

Nota: Se me ocurre que la mejor solución debe ser mediante punteros pues de
otro modo debería usar malloc.

Nota 2: en Ejemplos he visto que las matrices las definen como m[][5], o
sea, sólo con el campo de las columnas llenado. No estiendo esa notación.
¿Qué pasa con las filas? (he visto que incluso lo hacen para matrices que no
son cuadradas).

ESOP!!

Espero sus respuestas.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20101120/d011d1ae/attachment.html>


Más información sobre la lista de distribución Cconclase