malloc 的问题?已有n天拉 没人答 晕!
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
void main(void)
{
int len;
char a[]={"yhhtes2222"};
char *s1;
char *s2;#include <string.h>
const char *str;
s1=a;
len=strlen(s1);
s2=(char *)malloc(len+1);
printf("%d\n",strlen(s2));
strcpy(s2,s1);
printf("%d,%d,%d\n",strlen(s2),strlen(a),strlen(s1));
printf("%s %d\n",s2,strlen(s2));
free(s2);
//s2=NULL;
exit(0);
}
为什么strlen(s2)总比strlen(a)大四个字节.
在free(s2)的时候,
malloc一定要(len+1)或大于(len+1);
否则回出错??