har*_*ari 25 c segmentation-fault strlen
为什么strlen()不检查NULL?
如果我这样做strlen(NULL),就会出现故障.
试图了解它背后的基本原理(如果有的话).
Hog*_*gan 30
它背后的理性很简单 - 你如何检查不存在的东西的长度?
此外,与"托管语言"不同,运行时系统无法正确处理无效数据或数据结构.(这种类型的问题正是为什么更多"现代"语言更受欢迎的非计算或性能较低的需要应用程序).
c中的标准模板看起来像这样
int someStrLen;
if (someStr != NULL) // or if (someStr)
someStrLen = strlen(someStr);
else
{
// handle error.
}
Run Code Online (Sandbox Code Playgroud)
小智 5
一个小宏来帮助你的悲伤:
#define strlens(s) (s==NULL?0:strlen(s))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
46343 次 |
| 最近记录: |