section 1:
void func()
{
char * p;
char buf[1024];
p = malloc( 1024 );
if( p == NULL )
{
perror("malloc");
}
memset(p , 0 , 1024);
p = buf; // 指针重新指向了buf这个空间,p被释放时实际释放的是buf的空间,因此出错;
// 应使用拷贝函数赋值;
// sprintf( p ,"%s", buf);
free(p);
}
section 2:
malloc( sizeof(12) ); //12是整数 sizeof(12) 的值是4,malloc了4个字节的空间;
malloc( 12 ); //malloc了12个字节的空间