Я получаю следующую ошибку от valgrind. Условный переход или перемещение зависит от неинициализированных значений. Я смотрел вокруг на подобные вопросы, но я не могу выяснить, что не так. Я инициализировал все переменные, но все же ..
unsigned long hash_word(const char *str)
{
unsigned long hash = 5381;
int c = 0;
while((c = *str)) // The error occurs here
{
hash = ((hash<<5) + hash) + c;
str++;
}
return hash%1999099;
}
Значение str передается из главной функции. Я использую проверку на утечку = полное и отслеживание происхождения = да. Заранее спасибо за помощь.
Сначала я инициализирую узел.
typedef struct node{
char word[46];
struct node *next;
} node;
Телефонный код
while(!(feof(fp)))
{
node *n = malloc(sizeof(node));
if (n == NULL)
{
return false;
}
else
{
fscanf(fp,"%s",n->word);
index = hash_word(n->word);
.
.
. // further code
}