永发信息网

c语言里面操作字符串有时要字符串长度做变量,有时不要?

答案:2  悬赏:0  手机版
解决时间 2021-04-10 03:56
c语言里面操作字符串有时要字符串长度做变量,有时不要?
最佳答案
要求给定字符串长度是为了确保安全,避免由于字符串中没有结束符'\0'导致严重错误。
这在一些安全性要求特别高的场合非常重要。比如字符串拷贝时如果没有指定字符串长度,而又没有'\0'的话,就会一直进行内存操作直到被系统中断,被中断时很可能就已经把自己或者其他程序的内存给破坏了。
但是每次调用函数时都指定长度的话,对于某些需要临时计算长度的场合,效率就非常低了。

所以,要求给定长度是为了安全,不给定长度是为了效率(一定要确保字符串有结束符'\0')。
全部回答
你可以用动态分配内存的方法, 比如你要建立一个字符串数组: char *str; str=(char *)malloc(n); n是变量,可以在确定了变量的值后再用以上代码分配内存, 而str字符串可以以一般数组的用法使用,比如 *str="hello";的话 str[1]='l'; 最后别忘了释放内存 free(str);
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
某条约规定:“上谕以永禁或设、或入与诸国仇
在家里如何将自己的银行明细账打印出来
完美世界(国服)现在外挂多么?
单选题不正当竞争①损害了其他经营者和消费者
离婚,再婚后,生一个小孩,算第二胎,需要准
手持设备是什么,手持设备是什么东西
世界上最早的口龙是什么
Thetemple,_______theSongDynasty,waspulledd
海贼王索隆的感人台词,海贼王索隆全部招式
单选题2006年《治安管理处罚法》正式实施,与
为什么我微信提现已提交,为什么到现在状态还
大神帮忙.好评.填空题
是不是吧相关的文件删除就算是卸载了?
御苑假日酒店地址在哪,我要去那里办事
英雄联盟怎么不能登录,我的QQ怎么登录不了英
推荐资讯
假如光速只有3m/s,写出一个场景:________.
买5000元的二手车费用一共要多少钱
瞎子堆独立还是智力,新手求助,修罗堆属强还
关于x的一元二次方程(kx+1)(x-k)=k-2的二
单选题Ataboutnineo'clockinthemornin
根据短文内容,从短文后的选项中,选出能填入
marketing associate是什么意思
阅读理解Therearetwotypesoftwins;identical
内蒙古欣恒信物业服务有限责任公司地址在什么
有个女的个性签名是,遇见你好幸运,喜欢朴宝
床单被褥潮湿有什么方法解决这一类的潮湿
过年在家不小心闯红灯了,现在出来外地了,在
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?