c语言里面操作字符串有时要字符串长度做变量,有时不要?
答案:2 悬赏:0 手机版
解决时间 2021-04-10 03:56
- 提问者网友:王者佥
- 2021-04-09 15:49
c语言里面操作字符串有时要字符串长度做变量,有时不要?
最佳答案
- 五星知识达人网友:痴妹与他
- 2021-04-09 17:24
要求给定字符串长度是为了确保安全,避免由于字符串中没有结束符'\0'导致严重错误。
这在一些安全性要求特别高的场合非常重要。比如字符串拷贝时如果没有指定字符串长度,而又没有'\0'的话,就会一直进行内存操作直到被系统中断,被中断时很可能就已经把自己或者其他程序的内存给破坏了。
但是每次调用函数时都指定长度的话,对于某些需要临时计算长度的场合,效率就非常低了。
所以,要求给定长度是为了安全,不给定长度是为了效率(一定要确保字符串有结束符'\0')。
这在一些安全性要求特别高的场合非常重要。比如字符串拷贝时如果没有指定字符串长度,而又没有'\0'的话,就会一直进行内存操作直到被系统中断,被中断时很可能就已经把自己或者其他程序的内存给破坏了。
但是每次调用函数时都指定长度的话,对于某些需要临时计算长度的场合,效率就非常低了。
所以,要求给定长度是为了安全,不给定长度是为了效率(一定要确保字符串有结束符'\0')。
全部回答
- 1楼网友:逃夭
- 2021-04-09 18:42
你可以用动态分配内存的方法,
比如你要建立一个字符串数组:
char *str;
str=(char *)malloc(n);
n是变量,可以在确定了变量的值后再用以上代码分配内存,
而str字符串可以以一般数组的用法使用,比如
*str="hello";的话
str[1]='l';
最后别忘了释放内存
free(str);
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯