#include <stdlib.h> void free(void *ptr);
Libera el bloque al que apunta ptr y que debe haber sido previamente reservado con malloc. Si ptr es NULL no hace nada. No pone a NULL ptr.
Ninguno.
ANSI, POSIX
En la función main primero se solicita el tamaño de una ristra y cada uno de los caracteres que la componen y luego se muestra el tamaño de la ristra.
#include <stdio.h> #include <stdlib.h> #include <string.h> int main (){ int i, n; printf("Introduzca el tamaño de la ristra\n"); scanf("%d",&n); /* Se reserva memoria dinámica para n caracteres (ver sizeof) */ char *v = (char *) malloc(sizeof(char)*(n+1)); if(v!=NULL){ for(i=0;i<n;i++) { printf("Introduzca el carácter %d ",i); scanf("%c",&v[i]); } v[n]='\0'; printf("El tamaño de la ristra es %d ",strlen(v)); free(v); /* Se libera la memoria dinámica previamente reservada */ } return 0; }