NULL is an int, not an int*, so you'll need to typecast it
Code:
int test (char* s, int *i);
int test (int n, int *i);
void main () {
int num = 5;
char* str = "4";
printf("%i", test(num, (int*)NULL)); //return 5 (this will crash)
printf("%i", test(str, (int*)NULL)); //return 4
}
int test(char* s, int *i) {
return ((int)str_to_num(s));
}
int test(int n, int *i) {
return n;
}
It's said that the overloading system may get a bit smarter in the feature, but for now, always typecast to avoid problems when you're overloading