News:

The new Release 25.03 is out! You can download binaries for Windows and many major Linux distros here .

Main Menu

Bug: Same code, same compiler (newest cygwin gcc) wrong result in Code::Blocks

Started by Greedy_Lemon, May 24, 2020, 10:40:52 PM

Previous topic - Next topic

Greedy_Lemon

Hey,

I am facing strange result after running in Code::Blocks the same code as in CLion (same compiler- newest cygwin gcc):
#include <stdio.h>

int main(void)
{
    char n1[100] = "Ala";

    char *p;
    for(p= n1; p < n1 + 10; p++)
        printf("Address: %p,  c: %c  d: (%d)\n", p, *p, *p);

    return 0;
}


In Code::Blocks result is probably wrong, 1 image. Second one is from CLion, the same compiler used and the result is the proper one (tested with friends).


Any indeas or suggestions? Thank you in advance.



BlueHazzard

codeblocks is not a compiler, so anything different on runtime is not caused by codeblocks, but by the compiler/runtime

I see no error in both outputs, just different memory initializations during runtime...

huycan

Agreed. Nothing's wrong with the output. They're both correct. Just different memory location.

BlueHazzard

No, not only "location", but "initialization".
Location is hopefully always different on every run and on any system...
but also: unix systems (like cygwin is) seem to initialize memory with 0, at least if you make a debug build. Windows systems do not...

sodev

Accessing uninitialized memory is undefined behavior so by definition every result is correct :D

Greedy_Lemon