Ver Mensaje Individual
  #4 (permalink)  
Antiguo 14/05/2013, 15:51
Avatar de razpeitia
razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 9 meses
Puntos: 1360
Respuesta: Recibir matriz desconocida en una funcion

Leiste el link que te pase?

Hay viene un ejemplo de como hacerlo. Por ejemplo si lo que haces es mas o menos esto para alocar tu matriz:

Código C++:
Ver original
  1. const int row = 5;
  2. const int col = 10;
  3. int **bar = (int**)malloc(row * sizeof(int*));
  4. for (size_t i = 0; i < row; ++i)
  5. {
  6.     bar[i] = (int*)malloc(col * sizeof(int));
  7. }

Puedes pasarlo tranquilamente como un puntero a puntero.
Código C++:
Ver original
  1. void foo(int **baz)

Te dejo un ejemplo:
Código C++:
Ver original
  1. #include <iostream>
  2. #include <stdlib.h>
  3.  
  4. int **create_matrix(int rows, int cols);
  5. void destroy_matrix(int **matrix, int rows);
  6. void fill_matrix(int **matrix, int rows, int cols);
  7. void print_matrix(int **matrix, int rows, int cols);
  8.  
  9.  
  10. int main () {
  11.     int **m = create_matrix(3, 3);
  12.     fill_matrix(m, 3, 3);
  13.     print_matrix(m, 3, 3);
  14.     destroy_matrix(m, 3);
  15.  
  16.   return 0;
  17. }
  18.  
  19. int **create_matrix(int rows, int cols) {
  20.     int **bar = (int**)malloc(rows * sizeof(int*));
  21.     for (size_t i = 0; i < rows; ++i)
  22.     {
  23.         bar[i] = (int*)malloc(cols * sizeof(int));
  24.     }
  25.     return bar;
  26. }
  27.  
  28. void destroy_matrix(int **matrix, int rows) {
  29.     for (size_t i = 0; i < rows; i++) {
  30.         free(matrix[i]);
  31.     }
  32.     free(matrix);
  33. }
  34.  
  35. void fill_matrix(int **matrix, int rows, int cols) {
  36.     for(int i = 0; i < rows; i++) {
  37.         for(int j = 0; j < cols; j++) {
  38.             matrix[i][j] = (i * rows) + j;
  39.         }
  40.     }
  41. }
  42.  
  43. void print_matrix(int **matrix, int rows, int cols) {
  44.     for(int i = 0; i < rows; i++) {
  45.         for(int j = 0; j < cols; j++) {
  46.             std::cout << matrix[i][j] << " ";
  47.         }
  48.         std::cout << std::endl;
  49.     }
  50. }