#include <stdlib.h> void *malloc(size_t size);
Esta función reserva en memoria dinámica un bloque de tamaño size bytes. Este bloque debe ser liberado con free.
Devuelve un puntero a un bloque de memoria de size bytes, o NULL si no existe suficiente espacio libre para satisfacer la petición.
ANSI, POSIX
La función sumaOpuestos calcula la suma de los opuestos a los elementos que están almacenados en el vector pasado por parámetro.
#include <stdio.h> #include <stdlib.h> int sumaOpuestos(int *w, int n){ int i, sumopuestos=0; for(i=0;i<n;i++) sumopuestos+=(-1)*w[i]; return sumopuestos; } int main (){ int i, n; printf("Introduzca el tamaño del vector\n"); scanf("%d",&n); /* Se reserva memoria dinámica para n enteros (ver sizeof) */ int *v = (int *) malloc(sizeof(int)*n); if(v!=NULL){ for(i=0;i<n;i++) { printf("Introduzca el elemento v[%d] ",i); scanf("%d",&v[i]); } printf("La suma de los opuestos a los elementos de v es %d ",sumaOpuestos(v,n)); free(v); /* Se libera la memoria dinámica previamente reservada */ } return 0; }