C/Visual C - Matrices = punteros?

 
Vista:

Matrices = punteros?

Publicado por Serguei (15 intervenciones) el 11/09/2005 04:28:20
Hola a todos, estoy estudiando algo de matrices en C, por concepto se que funcionan como los vectores, ahora he estado declarando una que otra matriz numérica pero me ha dado error; asi la estoy declarando;

int matri[12][3];

lo que está pasando es que cuando llamo una funcion de llenado con 0 a esa matriz me da error, aqui está la función:

int llena0 (int matri)
{
int i,j;
for (i=0;i<=3;i++);
for (j=0;j<=12;j++);
matri[j][i] = 0;
return matri;
}

Entonces me puse a leer notas viejas del foro, y veo que las matrices van ligadas con los punteros ó apuntadres, de ahí mi cuestionamiento, alguien que me diga primero cual es el error de la función y luego qur me diga lo de si las matrices se hacen con apuntadores exlusivamente.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Matrices = punteros?

Publicado por Serguei (15 intervenciones) el 11/09/2005 05:20:57
ya descubrí lo de las matrices, ahora al menos guardo en ellas, alhuien que corra esto y me diga por que sale la leyenda "Null pointer assigment"

//Ejercicio1: kil¢metros por gal¢n
#include<stdio.h>
#include<conio.h>
#define filas 3
#define columnas 12

main()
{
// inicializaci¢n de la matriz
float matri[columnas][filas];
int i,op;
//Ciclo do de consula
while (op == 0);
i++;
printf("Indique el Kilometraje");
scanf(" %f",matri[i][1]);
printf("Indique cuantos galones tiene");
scanf(" %f",matri[i][2]);
matri[i][3] = matri[i][1] / matri[i][2];
printf("continuar 1/0?");
cscanf("%d",op);

return 0;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Matrices = punteros?

Publicado por chuidiang (677 intervenciones) el 11/09/2005 23:23:06
Hola:

Depende del compilador que uses, pero deberías inicializar el valor de i a cero por si acaso. Algunos compiladores (la mayoría) no lo inicializan.

Una coas más, las matrices comienzan su indice en 0, no en 1. Debes poner el i++ al final del bucle en vez de al principio, inicializar la i a cero y los otros indices deben ser 0,1 y 2 en vez de 1,2 y 3.

Al leer con scanf(), debes pasar un puntero a la variable, estas pasando directamente el entero. Deberías poner algo como esto

int op;
...
scanf ("%d", &op); // fijate en el & delante de op

De la misma forma deberías hacerlo con las celdas de la matriz

scanf ("%f", & (matri[i][2]) );

Prueba a ver si con esto van mejor las cosas.

Se bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar