C语言输入年月日,判断第几天的问题最后计算是第几天出错了

C语言输入年月日,判断第几天的问题最后计算是第几天出错了,第1张

main() { int year,moth,dayint mo[12]={31,28,31,30,31,30,31,31,30,31,30,31}int d,iscnaf("%d %d %d"唯穗,&year,&moth,&day)d=dayif(闰年枣嫌判断凳山手) mo[1]=29for(i=0i<moth-1i++) d+=mo[i]printf("%d",d) }

free释放内存块不要改变最初申请内存块的起始地址

像你这样free_pstring(ps + j * size_of_pstring)是不对的。

free既然只有1个参数,那它怎么知道要释放的内存块大小,说明在你使用malloc申请内存块的时候,这个连续地址里包含了内存块的大小信息。所以你应该直接用free(ps)释放申请的内存。当需要再次申请新的内存块时再使用malloc申请。

你可以试试:

char *str=(char *)malloc(sizeof(char)*5)

if(str)

{

strcpy(str,"abcd")

free(str+1)//正常释放应该轿没写free(str)

printf("%s",str)

}

你会发现释放后,闭芦纳地址依然可以正常哗册打印。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12246717.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-22
下一篇 2023-05-22

发表评论

登录后才能评论

评论列表(0条)

保存