18.
#include <stdio.h>
#include <stdlib.h>
void getmemory(char *p)
{
p=(char *) malloc(100);
strcpy(p,”hello world”);
}
int main( )
{
char *str=NULL;
getmemory(str);
printf(“%s/n”,str);
free(str); return 0;
}
答案:程序崩溃,getmemory中的malloc 不能返回动态内存, free()对str操作很危险
函数calloc()会将所分配的内存空间中的每一
位都初始化为零,malloc不会。