How to check for signed integer overflow in C

1 Answer

0 votes
#include <limits.h>
#include <stdio.h>

int add_without_overflow(int a, int b) {
    if ((b > 0 && a > INT_MAX - b) || (b < 0 && a < INT_MIN - b)) {
        printf("Overflow!\n");
        return 0; // Return a safe value or handle the overflow
    }
    
    return a + b;
}

int main() {
    int a = INT_MAX;
    int b = 1;
    
    int result = add_without_overflow(a, b);
    
    printf("Result: %d\n", result);
    
    return 0;
}



/*
run:

Overflow!
Result: 0

*/

 



answered Apr 5, 2025 by avibootz

Related questions

1 answer 123 views
1 answer 144 views
1 answer 154 views
1 answer 125 views
2 answers 205 views
1 answer 169 views
169 views asked Jul 26, 2017 by avibootz
1 answer 119 views
...