关于内存释放free()的问题
如果说我申请了一块动态内存 char*p=(char *)malloc(12 * sizeof(char));如果我释放的时候使用了free(p+1)或者说 free(p+n),n<11。能释放申请的内存么?为什么?
如果不能,又会出现什么样子的结果。
2017-08-14 10:33
2017-08-14 11:20

2017-08-14 11:41

2017-08-14 11:42
2017-08-14 11:43

2017-08-14 11:43
2017-08-14 11:46
2017-08-15 08:33
程序代码:char *IntToString(int n)
{
char *res=(char*)malloc(16*sizeof(char));
int tmp;
char *p=res+15;
*p--='\0';
if(res==NULL) exit(1);
tmp=n;
if(tmp>0)
{
while(tmp)
{
*p--=tmp%10+'0';
tmp=tmp/10;
}
p=p+1;
}
else
{
if(tmp<0)
{
tmp=0-tmp;
while(tmp)
{
*p--=tmp%10+'0';
tmp=tmp/10;
}
*p='-';
}
else
{
*p='0';
}
}
return p;
}
这是一个非常简单的整数转字符串的方案,是不是可能?
2017-08-15 21:43
2017-08-15 21:58