free时会出错代码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
#define DATA_SIZE 200
#define MEM_SIZE DATA_SIZE
char *str = malloc(MEM_SIZE);
if(NULL == str)
{
printf("malloc fail\n");
return -1;
}
memset(str, 0, MEM_SIZE);
printf("str:%s\n", str);
unsigned char pkt_data[DATA_SIZE];
unsigned char i=0;
for(i=0;i<DATA_SIZE;i++)
{
pkt_data[i] = i;
sprintf(str+strlen(str), "%02x", pkt_data[i]);
}
sprintf(str+strlen(str), "\n");
printf("str:%s\n", str);
free(str);
}
运行后出错结果如下:
future@ubuntu:~/mmiao$ ./free
str:
str:000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7