将 NULL 作为参数传递时的行为是strstr
什么?
鉴于:
char * p = NULL;
char * s = NULL;
情况1: strstr(p, "Hello");
案例二: strstr("With my dog", p);
案例3: strstr(p, s);
我的理解是,行为是未定义的,由所有 3 种情况的实现决定。
根据 Microsoft Visual Studio 文档,他们执行参数验证并在那里处理。 见备注部分。
我们在 IAR Workbench 上使用 C99。
背景:一些测试人员正在编写单元测试并将 NULL 分配给字符串变量。