Páginas: 1 [2]
|
 |
|
Autor
|
Tema: incializar un vector con una funciòn. (Leído 637 veces)
|
Eternal Idol N&P
Desconectado
Mensajes: 1.339
Assembly (x86/x64), C/C++, Kernel Mode (WDM/WDF)
|
inivector ( *matriz , dim );
|
|
|
|
|
En línea
|
|
|
|
GroK
Conectado
Mensajes: 594
...I have become comfortably numb...
|
inivector ( *matriz , dim );
matriz ya es un puntero, por lo que hay que pasarlo como tal a la funcion, sin dereferenciar. Yo insisto en usar memoria dinamica para lo que tu quieres, ya que el tamaño de la matriz no lo conoces de antemano no? Aqui te pongo como lo haria yo, es parecido a la de antes pero puesto como funcion y corregidos los fallitos xD #include <stdio.h> #include <stdlib.h> int inivector (int *vec, int dim) { int i; for (i = 0; i < dim; i++) vec[i] = 1; return 0; } int main (void) { int *matriz, tam; printf ("Dimensiones de la matriz: "); scanf ("%d", &tam); matriz = (int *) malloc (tam * sizeof(int)); if (inivector (matriz, tam) != 0) printf ("Error inicializando matriz!"); getchar (); free (matriz); return 0; } Espero que te sirva, saludos
|
|
|
|
|
En línea
|
"I put on my Hendrix album and my son said 'Dad, who's that?' and i said 'Well son, that's God' "- Robert Plant
|
|
|
Eternal Idol N&P
Desconectado
Mensajes: 1.339
Assembly (x86/x64), C/C++, Kernel Mode (WDM/WDF)
|
matriz ya es un puntero, por lo que hay que pasarlo como tal a la funcion, sin dereferenciar. Si, matriz es un array, ese es el codigo original y lo que esta en rojo lo que hay que borrar. Yo insisto en usar memoria dinamica para lo que tu quieres, ya que el tamaño de la matriz no lo conoces de antemano no? Aqui te pongo como lo haria yo, es parecido a la de antes pero puesto como funcion y corregidos los fallitos xD Aunque insistas es IRRELEVANTE, lo que el pide es una FUNCION para inicializar la memoria a cero o uno (vaya uno a saber, primero dijo uno pero su codigo la pone a cero). En la funcion propuesta se pasa el tamaño como parametro.
|
|
|
|
« Última modificación: 26 Febrero 2008, 00:06 por Eternal Idol »
|
En línea
|
|
|
|
GroK
Conectado
Mensajes: 594
...I have become comfortably numb...
|
Si, matriz es un array, ese es el codigo original y lo que esta en rojo lo que hay que borrar. Ah, bien entonces, pense que lo habias añadido tu. Aunque insistas es IRRELEVANTE, lo que el pide es una FUNCION para inicializar la memoria a cero. En la funcion propuesta se pasa el tamaño como parametro. Mmmh pues no entiendo a que te refieres, no es eso lo que hace inivector? Y no decia tambien que queria que cada casilla del array contuviese un 1, no un 0? Saludos
|
|
|
|
|
En línea
|
"I put on my Hendrix album and my son said 'Dad, who's that?' and i said 'Well son, that's God' "- Robert Plant
|
|
|
Eternal Idol N&P
Desconectado
Mensajes: 1.339
Assembly (x86/x64), C/C++, Kernel Mode (WDM/WDF)
|
Ah, bien entonces, pense que lo habias añadido tu. No, rojo denota error  Es el ultimo codigo que el dejo y el error que le da el compilador esta ahi. Mmmh pues no entiendo a que te refieres, no es eso lo que hace inivector? Efectivamente y por lo tanto es irrelevante el uso de memoria dinamica, la funcion esta preparada para aceptar un puntero a int y su tamaño. No hacia falta mostrar ningun main siquiera ... Y no decia tambien que queria que cada casilla del array contuviese un 1, no un 0? Si, como agregue a mi mensaje anterior el dijo originalmente uno, pero todos sus codigos (incluido el del mensaje original) usan cero como es lo normal.
|
|
|
|
« Última modificación: 26 Febrero 2008, 00:12 por Eternal Idol »
|
En línea
|
|
|
|
botella
Desconectado
Mensajes: 68
|
si, en realidad era a 0, dije uno no se por que.
Volviendo a el còdigo ese que pusiste funciona bièn, pero no entiendo unas cosas:
que hace la lìnea ?:
matriz = (int *) malloc (tam * sizeof(int)); //es decir, que es malloc y sizeof???
y que hace:
free (matriz); //es decir, que es free??? me suena a liberar o algo asì pero realmente no se que es.
desde ya gracias por todo
estoy aprendiendo y realmente el foro es una ayuda de la puta madre.
|
|
|
|
« Última modificación: 26 Febrero 2008, 22:32 por botella »
|
En línea
|
|
|
|
|
Páginas: 1 [2]
|
|
|
|