0
所以我需要制作一个特定的哈希码函数来满足特定的算法。算法在这个问题的背景下并不重要。我遇到了seg故障,我不知道如何解决它。我在gdb中进行了调试,发现它来自访问无效的内存地址。分段错误
这里是我的代码:
int hash_code(const char* str){
int len = strlen(str);
char* dst;
if(len == 0)
return 0;
else{
strncpy(dst, str, (len - 1));
return (hash_code(dst) * 65599) + str[len-1];
}
}
我很有信心,它从DST的,但我不知道如何解决它,没有得到赛格故障。我会用什么来初始化dst来避免这种情况?
'strncpy(dst,str,(len-1));''dst'没有初始化。不能确保'dst'指向的内存。 – BLUEPIXY 2014-10-06 01:31:33
你知道哪条线路会出现故障吗?有几种可能性,包括@BLUEPIXY行最可能指出 – Krease 2014-10-06 01:31:39
@BLUEPIXY,所以我应该如何初始化dst? – Mark 2014-10-06 01:36:19