LINUX.ORG.RU
Ответ на: комментарий от mono

сломался парсер.

я думаю, имеется в виду адрес одинаковых строковых литералов:

void charAddr(const char * str)
{
    printf("addr of \"%s\" is 0x%p\n", str, str);
}

...

charAddr("123");
charAddr("456");
charAddr("123");
addr of "123" is 0x004228A4
addr of "456" is 0x00422868
addr of "123" is 0x004228A4

почему это может волновать - я не знаю

jtootf ★★★★★
()
Ответ на: комментарий от mono

разобрался вроде.. я просто думал что *str1=«abcd» и *str2=«abcd» будут иметь разные адреса. Например при передаче в функцию func(str1), копировании strcpy(pwd,str1), где pwd это pwd[5] и затем обнулении memset(pwd,0,5) str1 не изменится.

put_spell_on_y0u
() автор топика

-fmerge-constants
Attempt to merge identical constants (string constants and floating
point constants) across compilation units.

This option is the default for optimized compilation if the
assembler and linker support it. Use -fno-merge-constants to
inhibit this behavior.

Enabled at levels -O, -O2, -O3, -Os.

YesSSS ★★★
()

По разным адресам лежат разные строки. Разные строки могут совпадать.

melkor217 ★★★★★
()

да, по разным. дело было в одинаковых переменных)) мне это и показалось странным, что они под одним и тем же адресом.

put_spell_on_y0u
() автор топика
Ответ на: комментарий от balodja

Screamin' Jay Hawkins?

в данном случае прозреваю исполнение Диамандой Галас

jtootf ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.