c - 使用递归创建哈希码函数

标签 c recursion hash

我最初的论点有问题,但后来得到了解决。但是现在我收到了 seg failure 错误,并且不知道如何修复它。

这是我的代码

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];
 }
}

最佳答案

" error: passing argument 1 of 'strncpy' discards 'const' qualifier from pointer target type"

此错误是由于 strncpy 获取的第一个参数的类型为 char* 但您传递的是 const char*。 strncpy原型(prototype)是

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

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

关于c - 使用递归创建哈希码函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26207767/

相关文章:

c - 我写了这个用于冒泡排序的 C 程序。它确实很好,但它真的是冒泡排序逻辑吗?

javascript - JSLint 声称某些递归函数调用是 "out of scope"

sql - 递归 "ON DUPLICATE KEY UPDATE"

c - 扫描f ("%*[^\n]");在程序中的用法?

c - 该程序仅解决第一行[数独]

来自文本文件的 Perl 哈希

Java:将重复的对象添加到集合中?

javascript - 哪个哈希函数更适合在小型哈希表中表示 128 位随机 id

C/POSIX- pthread_t 阻塞直到任务完成

javascript - 如何使用递归对三个值求和 - Javascript