小编Muh*_*ish的帖子

是p2 == NULL和!*p2相同吗?

下面是代码

char* StrStr(const char *str, const char *target) {
  if (!*target) return str;
  char *p1 = (char*)str;
  while (p1 != NULL) {
    char *p1Begin = p1, *p2 = (char*)target;
    while (*p1 && *p2 && *p1 == *p2) {
      p1++;
      p2++;
    }
    if (!*p2)
      return p1Begin;
    p1 = p1Begin + 1;
  }
  return NULL;
}
Run Code Online (Sandbox Code Playgroud)

如果我使用if(p2 == NULL)而不是if(!*p2)那么我会得到分段错误.为什么?

第14行http://codepad.org/ZUqXVCJ9

if(!*p2)是否与if(p == NULL)相同?

为什么我会出现分段错误.

c null pointers

0
推荐指数
1
解决办法
80
查看次数

标签 统计

c ×1

null ×1

pointers ×1