#include <stdio.h>
#include <string.h>
int main()
{
char src[]="123456";
strcpy(src, &src[1]);
printf("Final copied string : %s\n", src);
}
Когда я использую компилятор Visual Studio 6, он дает ожидаемый ответ "23456
".
Почему эта программа печатает "23556
" при компиляции с gcc 4.7.2?
e
. - person Jite   schedule 18.12.2014src
распадается на указатель на первый элемент массиваsrc
.&src[1]
— указатель на второй элемент массива. Поскольку исходная строка не имеет длины 0, они явно перекрываются. - person Deduplicator   schedule 18.12.2014char dest[]="123456";
и сделатьstrcpy(src, &dest[1]);
- person Blood-HaZaRd   schedule 18.12.2014