Ver Mensaje Individual
  #4 (permalink)  
Antiguo 11/05/2014, 05:59
Avatar de vangodp
vangodp
 
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 10 años, 7 meses
Puntos: 38
Respuesta: Suma de 2 Vectores en DevC

Ese programa tiene problemas.
No puedes hacer esto: [m]. A menos que m sea una constante.
Lo de
Cita:
printf("Ingrese el Tamaño de los Vectores a Sumar: \n");
scanf("%d",&m);
... olvídalo =(

Para poder hacer eso [m] seria asi:
const int m = 10;
int vec1[m];
Entonces si.

Para hacer una tabla que le elijas el tamaño, eso debes usar memoria dinámica pero en c no se usar las malloc y familia, no tengo ganas de liarme con eso XD.

búsquese tablas dinámicas en c y te va salir montones de formas de hacer eso pero te advierto que casi todas son trabajando con el heap XD.

Mira encontre una buena pajinita que te explica mas o menos como se hace en c :D(Es lo minimo que te puedo hacer ^^)

http://www.linuxhispano.net/2011/08/...n-vector-en-c/

Código C++:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main () {
  4.     //======================================================================
  5.     int numeroElementos;
  6.     int * vector;// una tabla es un puntero que apunta al primer objeto de una cadena, este sera nuestro puntero    
  7.     //======================================================================   
  8.     printf ( "¿Cuántos elementos quieres? " );
  9.     scanf ( "%d", &numeroElementos );  //Ahora si pedimos el tamaño que va tener eso en el heap
  10.  
  11.     //======================================================================   
  12.     //malloc reserva la cantidad de numeroElementos multiplicado por el tamaño de un int si por
  13.     //ejemplo en nuestro ordenador un int tiene 4 bytes sera el numero que ingresemos multiplicado por 4.
  14.     //Si vamos gradar float el calculo sera numeroElementos * sizeof ( float ) y asi para todos los tipos ;)
  15.     vector = ( int * ) malloc ( numeroElementos * sizeof ( int ) );  
  16.    
  17.    
  18.     //======================================================================
  19.     // Eso es muy importante ya que comprueba que se aya creado nuestra tabla, caso no se hubiera creado
  20.     //no iba a saber y entonces el programa se cerraria de forma inesperada cuando le asignamos una variable,
  21.     //como la memoria dinámica no se libera sola..
  22.     //quedaría llena con cosas que allí habíamos puesto anteriormente, si una sola variable falla al crearla
  23.     //deberías mostrar un mensaje de error y borrar todo lo anterior o bien puedes volver a intentar crear la tabla pero si no logras,
  24.     //estas obligado a liberas lo que antes habias creado antes de cerrar el programa ;)
  25.     //¡Recuerdalo! Jamas usar una tabla que no se cree correctamente o el programa se crashea ok;)    
  26.     if ( vector == NULL ) {
  27.         perror ( "Problemas reservando memoria" );
  28.         exit ( 1 );
  29.     }
  30.  
  31.  
  32.  
  33.     //======================================================================   
  34.     // trabajamos con el vector
  35.     //Una vez creado y comprobado lo usas de manera normal como una tabla normal solo que a esa si le ibas a poder decir el
  36.     //tamaño que tiene antes de crearla.
  37.  
  38.  
  39.  
  40.     //======================================================================   
  41.     // lo liberamos
  42.     //Como dije antes la memoria dinámica no se libera sola, debes liberarla antes, lo que no se es
  43.     //si tendrías que liberar antes a cada posición de la tabla[0],tabla[1]tabla[2]... como dije desconozco malloc y familia XD
  44.     free ( vector );
  45.    
  46.     return 0;
  47. }

Si no sabes trabajar con el heap mejor primero te lías con el antes de hacer tablas dinámicas, eso necesitas conocimientos sobre punteros, y memoria dinámica

Última edición por vangodp; 11/05/2014 a las 06:27