C语言改错题

#include<stdio.h>程序D9.c的功能是申请100个字节的内存空间,显示其首地址,然后释放申请到的内存空间。(每个found下一行又错误,求大神教教我。我确... #include<stdio.h>
程序D9.c的功能是申请100个字节的内存空间,显示其首地址,然后释放申请到的内存空间。
(每个found下一行又错误,求大神教教我。我确实看不懂还没学,想自学)
#include<stdlib.h>

int main(void)
{
/*********Found************/
char pch[2];

/*********Found************/
if (pch = (char *)malloc(100) == NULL)
{
printf("malloc memory fail!\n");
return 1;
}
printf("%p\n", pch);

/*********Found************/
close(pch);

return 0;
}
展开
 我来答
天雨下凡
2017-01-17 · 知道合伙人教育行家
天雨下凡
知道合伙人教育行家
采纳数:17564 获赞数:65157
爱电脑、爱数学、爱音乐; 熟悉VB、C/C++、JAVA; EXCEL与VBA有所研究…… 数学,一些会,一些被忘却……

向TA提问 私信TA
展开全部
#include<stdio.h>
#include<stdlib.h>
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;
}
pyf19980330
2017-01-17 · TA获得超过774个赞
知道小有建树答主
回答量:778
采纳率:100%
帮助的人:501万
展开全部
第一部分,定义的必须是指针而不是数组,因为数组名是常量,不可更改。
第二部分,赋值运算符优先级低于关系运算符,所以赋值要打括号。
第三部分,应该用free(pch)来释放,free和malloc是一一对应的。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
My_Persistence
2017-01-17 · TA获得超过3467个赞
知道大有可为答主
回答量:1201
采纳率:81%
帮助的人:433万
展开全部
/*********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);

我把错误的注释掉了,正确的语句写在下面。

追问
这里我们还没学到,所以都看不懂,你能告诉我if那段是什么意思吗?,还有那个什么free()释放内存又怎么理解?释放与不释放又什么区别?
追答
在内存中申请了100个字节的内存空间,返回这个内存空间的首地址,然后把这个首地址赋值给指针变量pch。
malloc()函数申请的内存空间是动态分配的,是在堆内存中分配的,而不是在栈内存(内存区相关的内容你自己查资料)。free()函数的作用就是把使用者自己申请的资源归还给系统,系统就可以把这部分内存给其他的变量使用。如果不释放,就会一直占着这块内存空间不放,系统是不会自动回收的,这就造成了内存泄漏,浪费了内存资源。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式