永发信息网

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

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

所以,要求给定长度是为了安全,不给定长度是为了效率(一定要确保字符串有结束符'\0')。
全部回答
  • 1楼网友:逃夭
  • 2021-04-09 18:42
你可以用动态分配内存的方法, 比如你要建立一个字符串数组: char *str; str=(char *)malloc(n); n是变量,可以在确定了变量的值后再用以上代码分配内存, 而str字符串可以以一般数组的用法使用,比如 *str="hello";的话 str[1]='l'; 最后别忘了释放内存 free(str);
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯