Web lists-archives.com

Re: [Mingw-users] is this mingw error?




Hi Chan,

I think that first of all, you should be aware that the people who create compilers are extremely serious and, therefore, compiler errors are extremely rare. To give you a sense of proportion, in 30+ years of very heavy programming (i.e. millions of lines of code), I have really identified just FOUR TRUE compiler bugs (which have all been promptly corrected in the next release) - all the rest were my own bugs. In short: the first thing to check is definitely your own code.

Here are some pointers to look at:
- From your example it's not clear WHAT the aaa array should actually contain, as you don't specify what the getchar() actually gets: is it the char 'a' (i.e. the one actually printed!) or not? Please do not confuse a (the variable) with 'a' (the ASCII char constant)
- Furthermore, you never increment the "cur" variable in addstr(), which means that each new char input will simply overwrite aaa[0] - i.e. it's not ADDstr: it's really SETstr0
- Finally, if you actually were incrementing cur in addstr (which you aren't), it would eventually reach MAX, which would overflow the aaa[MAX] array (because it only goes up to [MAX-1]), causing all sorts of unpredictable mess.

I really don't want to offend you, and I actually applaud your enthusiasm... but it looks like some really basic C issues still elude you.

Best,

Emanuel


On 27-Feb-17 05:24, Chan Oak wrote:
here source code

#include <stdio.h>
#define MAX 100
char aaa[MAX];
int addstr(char a)
{
    static int cur = 0;
    if (cur > MAX)
        return 0;
    else
        aaa[cur] = a;
   
    return 1;
}
int main()
{
    char a;
    int i;
   
    while ((a = getchar()) != EOF)
    {
        addstr(a);
    }
    printf("%c", aaa[0]);
    printf("hello\n");
}

here is output

a
^Z
hello
the global array aaa[0] is modified yet it does not print aaa[0].
if I put printf inside function addstr to print aaa[0], it does print

is this compiler bug?


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot


_______________________________________________
MinGW-users mailing list
MinGW-users@xxxxxxxxxxxxxxxxxxxxx

This list observes the Etiquette found at 
http://www.mingw.org/Mailing_Lists.
We ask that you be polite and do the same.  Disregard for the list etiquette may cause your account to be moderated.

_______________________________________________
You may change your MinGW Account Options or unsubscribe at:
https://lists.sourceforge.net/lists/listinfo/mingw-users
Also: mailto:mingw-users-request@xxxxxxxxxxxxxxxxxxxxx?subject=unsubscribe

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
MinGW-users mailing list
MinGW-users@xxxxxxxxxxxxxxxxxxxxx

This list observes the Etiquette found at 
http://www.mingw.org/Mailing_Lists.
We ask that you be polite and do the same.  Disregard for the list etiquette may cause your account to be moderated.

_______________________________________________
You may change your MinGW Account Options or unsubscribe at:
https://lists.sourceforge.net/lists/listinfo/mingw-users
Also: mailto:mingw-users-request@xxxxxxxxxxxxxxxxxxxxx?subject=unsubscribe