Witam! Dopiero od niedawna programuje w c++ i natknalem sie na taki problem.
struct node{
string login;
unsigned int hits;
node *left,*right;
int layer;
}
unsigned long long hits=0;
node * current=root;
hits+=current->right->layer*current->right->hits;
jest to fragment mojej implementacji iteracyjnego uzupelniania drzewa BST. Dla mniejszych liczb nie ma zadnego problemu ale pojawia sie on gdy layer=3 oraz hits=2147483647(moja maksymalna wartosc). Zamiast pomnozyc to dostaje 2147483645.
Domyslam sie ze to cos nie tak z typami(zly ich dobor do arytmetyki pewnie).
Bede wdzieczny za szybka odpowiedz.