Diferencia entre revisiones de «Usuario:Cstaff/Zona de pruebas»

(Página reemplazada por '=Esta es una zona de pruebas=')
Línea 1: Línea 1:
 
=Esta es una zona de pruebas=
 
=Esta es una zona de pruebas=
 
Somos responsables de liberar  cualquier espacio que reservemos dinámicamente una vez que dejemos de  usarlo.
 
 
==== En C ====
 
En [[C]] esta operación se realiza utilizando las funciones de la librería <span style="color:green; display=block"><stdio.h></span> '''malloc''', '''realloc''' y '''free'''.
 
 
Ejemplo:
 
 
<div style="background-color: #e9e9e9; border:solid 1px #bcbcbc">
 
<syntaxhighlight lang="cpp">
 
 
#include <string.h>
 
#include <stdio.h>
 
 
//Clona una cadena de caracteres y retorna
 
//un puntero a la nueva cadena.
 
char *strclone(char *src){
 
      char *mem_dinamica;                        //Puntero al espacio a reservar.
 
      size_t str_len;                            //Tamaño de la cadena que se quiere clonar.
 
 
      str_len = strlen(src);                    //Determinamos el tamaño de la cadena.
 
      mem_dinamica = (char*)malloc(str_len+1);  //Reservamos el espacio + caracter '\0'.
 
      if( mem_dinamica != NULL){                //Comprobamos que se reservara el espacio.
 
        strcpy(mem_dinamica, src);              //Copiamos la cadena.
 
      }
 
      return mem_dinamica;                      //Retornamos el puntero a la nueva cadena.
 
}
 
 
 
int main(){
 
      char *str1 = NULL;
 
      char *str2 = "Hola Mundo";
 
 
      str1 = strclone(str2);
 
 
      if(str1 != NULL){
 
          printf("La cadena clonada es: %s\n", str1);
 
      }else{
 
          printf("Error: No se pudo clonar la cadena\n");
 
      }
 
 
      free(str1);                                //Liberamos el espacio previamente reservado.
 
      return 0;
 
}
 
</syntaxhighlight>
 
</div>
 
 
Note que podemos llamar a '''free''' incluso si el puntero es NULL.
 
 
== Arreglos y punteros ==
 

Revisión del 12:49 28 mar 2014

Esta es una zona de pruebas