使用递归创建哈希码函数

时间:2014-10-05 22:14:51

标签: c recursion hash

我最初对我的论点有疑问,但这是固定的。但是现在我遇到了一个seg错误,我不确定如何解决它。

这是我的代码

int hash_code(const char* str){
 int len = strlen(str);
 char dst[len-1];
 if(len == 0 )
  return 0;
 else{
 strncpy(dst, str, (len - 1));
 return (hash_code(dst) * 27) + str[len-1];
 }
}

1 个答案:

答案 0 :(得分:0)

  

"错误:传递' strncpy'的参数1丢弃' const'预选赛   来自指针目标类型"

这个错误是因为strncpy采用的第一个参数是char*类型但你传递的是const char*。 Strncpy原型是

char * strncpy ( char * destination, const char * source, size_t num );
                 ^^^^^^^^^^^^^^^^^^

第一个指针是指向目标的指针,而不是指向源的指针。