Hi when i try to use assert function in my program it dump the code. Can anyone tell me what is the problem with my code.
#include <stdio.h>
#include <assert.h>
void print_number(int myConfig) {
assert (myConfig > 20);
printf("\nConfig value is : %d",myConfig);
}
int main ()
{
int configArr[]={21,27,15};
for(int i=0;i<=2;i++)
print_number (configArr[i]);
return 0;
}
Output :
Config value is : 21 Config value is : 27Assertion failed: myConfig > 20, file assert.cpp, line 4 Abort (core dumped)
There is nothing wrong with your code.
The assert macro checks for the validity of the assertions or assumptions. If the assertion results to be FALSE then the macro writes information about the call that failed on stderr and then calls abort(). abort() raises the SIGABRT signal and this results in an abnormal termination of the process.
In your code, during the third (well, 2nd technically!) iteration of the for loop, "myConfig > 20" fails as value of myConfig is 15 and hence the process terminates abnormally.
Your code is OK. When your code executed, if the assert expression(15 > 20) is false, assert()
writes information about the call that failed on stderr and then calls abort()
which raises the SIGABRT signal, and a core dump may be generated depending on your system settings.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With