关于内存释放free()的问题
如果说我申请了一块动态内存 char*p=(char *)malloc(12 * sizeof(char));如果我释放的时候使用了free(p+1)或者说 free(p+n),n<11。能释放申请的内存么?为什么?
如果不能,又会出现什么样子的结果。
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; }这是一个非常简单的整数转字符串的方案,是不是可能?