#include
#include
int main(void)
{
/*********Found************/
//char pch[2];
char * pch //应该用一个char型指针指向申请的空间的首地址
/*********Found************/
//if (pch = (char *)malloc(100) == NULL)
if ((pch = (char *)malloc(100)) == NULL) //漏了一对小括号
{
printf("malloc memory fail!\n");
return 1;
}
printf("%p\n", pch);
/*********Found************/
//close(pch);
free(pch); //释放指针pch指向的内存块,应该用free,不是close
return 0;
}
第一部分,定义的必须是指针而不是数组,因为数组名是常量,不可更改。
第二部分,赋值运算符优先级低于关系运算符,所以赋值要打括号。
第三部分,应该用free(pch)来释放,free和malloc是一一对应的。
/*********Found************/
//char pch[2];
char *pch;
/*********Found************/
if (pch = (char *)malloc(100) == NULL)
{
printf("malloc memory fail!\n");
return 1;
}
printf("%p\n", pch);
/*********Found************/
//close(pch);
free(pch);
我把错误的注释掉了,正确的语句写在下面。