Hi Kayathri,
you have a few problems (or bugs, actually) in your code:
- you are using three large arrays (3x256 bytes) local to your function. If you have not allocated enough stack, this will be a problem.
- you are defining f_check[] twice.
- but the real problem is: strcmp() compares the strings up to a zero terminating byte. You don't have that as you initialize the buffers with a pattern, but you don't set the terminating character. I suggest you either fix that, or you are using strncmp() instead.
I hope this makes the problem clear and helps,
Erich
Hi Erich,
i have included <string.h>
below are my function
//strcmp test
char f_check[256];
char buf_data[256];
int true1=0;
int false1=0;
int i = 5; //assigned simply to chech the strcmp return value
char f_check[256];
memset(f_check,0x41,sizeof(f_check));
memset(buf_data,0x41,sizeof(buf_data));
// upto here i vaue is 5
i = strcmp(f_check,buf_data);
// now i =5
if(i==0)
{
true1++;
}
else
{
control comes here
false1++;
}
Regards,
Kayathri
Hi Kayathri,
you have a few problems (or bugs, actually) in your code:
- you are using three large arrays (3x256 bytes) local to your function. If you have not allocated enough stack, this will be a problem.
- you are defining f_check[] twice.
- but the real problem is: strcmp() compares the strings up to a zero terminating byte. You don't have that as you initialize the buffers with a pattern, but you don't set the terminating character. I suggest you either fix that, or you are using strncmp() instead.
I hope this makes the problem clear and helps,
Erich