Você está na página 1de 2

C:\Users\ANDERSON\Documents\CamSuite Gallery\Programas em C\TAD\matriz2.

tera-feira, 3 de abril de 2012 23:25

#include <stdlib.h> /* malloc, free, exit */ #include <stdio.h> /* printf */ #include "matriz.h" struct matriz { int lin; int col; float **v; }; typedef struct matriz Matriz; Matriz* matriz_cria (int m, int n) { int i; Matriz* mat = (Matriz*) malloc(sizeof(Matriz)); if (mat == NULL) { printf("Memria insuficiente!\n"); exit(1); } mat->lin = m; mat->col = n; mat->v = (float**) malloc(m*sizeof(float*)); for (i=0; i<m; i++) mat->v[i] = (float*) malloc(n*sizeof(float)); return mat; }

void libera (Matriz* mat) { int i; for (i=0; i<mat->lin; i++) free(mat->v[i]); free(mat->v); free(mat); }

float acessa(Matriz* mat, int i, int j) { if (i<0 || i>=mat->lin || j<0 || j>=mat->col) { printf("Acesso invlido!\n"); exit(1); } return mat->v[i][j]; }

void atribui (Matriz* mat, int i, int j, float v) { if (i<0 || i>=mat->lin || j<0 || j>=mat->col) { printf("Atribuio invlida!\n"); exit(1); } mat->v[i][j] = v; } int linhas (Matriz* mat) { return mat->lin; }

-1-

C:\Users\ANDERSON\Documents\CamSuite Gallery\Programas em C\TAD\matriz2.c

tera-feira, 3 de abril de 2012 23:25

int colunas (Matriz* mat) { return mat->col; }

-2-

Você também pode gostar