我最初对我的论点有疑问,但这是固定的。但是现在我遇到了一个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];
}
}
答案 0 :(得分:0)
"错误:传递' strncpy'的参数1丢弃' const'预选赛 来自指针目标类型"
这个错误是因为strncpy采用的第一个参数是char*
类型但你传递的是const char*
。 Strncpy原型是
char * strncpy ( char * destination, const char * source, size_t num );
^^^^^^^^^^^^^^^^^^
第一个指针是指向目标的指针,而不是指向源的指针。