Para limpiar un buffer con determinado espacio:
char buffer[260]={'\0'};Listo nos ha quedado limpio porque { } rellenan el contenido de nuestro buffer con lo que hay entre comillas simples (se usan comillas simples por que estamos usando un solo caracter, en esta ocasión el caracter nulo representado por \0
Ahora para limpiar un buffer de memoria lo que hacemos es usar memset() así:
char *szBuffer; //puntero bufferListo nuestro buffer o bloque de memoria esta limpio como para despues agregarle cadenas de texto y demás cosas!, ahora les dejo un ejemplo implementando la limpieza de memoria con una función Left de visual basic que ya había programado y posteado yo acá
szBuffer=(char *)malloc(6); // reservamos un bloque de memoria de tamaño 6
memset(szBuffer,0,6); //limpiamos los 6 bytes de memoria rellenando con 0
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//->prototipo
char * Left(char *sCadena,int iPosicion);
//->uso
int main()
{
printf("%s",Left("funcion-linkgl.blogspot.com",6));
getchar();
return 0;
}
//->funcion
char * Left(char *sCadena,int iPosicion)
{
int i;
char *sNueva=malloc(strlen(sCadena));
memset(sNueva,0,strlen(sCadena));
for(i=0;i<iPosicion;i++)
sNueva[strlen(sNueva)]=sCadena[i];
return sNueva;
}//compilado con mingw dev cpp
Espero a alguno de ustedes le haya servido la forma para limpiar una cadena o bloque de memoria con C usando memset y caracteres nulos, nos vemos en la siguiente entrada
No hay comentarios:
Publicar un comentario