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