Если скомпилировать код ниже в Visual Studio x86 (Visual Studio Tools - командная строка разработчика для VS, команда "cl test.c" ) программа скопилируется, успешно выполнится и на консоль будет выведено: Result: Goodbye! (проверялось в 2010 и 2015 версии)
Но если этот код скомпилировать в gcc x86-64 под Linux, то исполняемая программа будет падать в Segmentation Fault.
Убедитесь в этом сами и попробуйте ответить, почему в Linux программа падает? Почему в Windows программа успешно работает? Для поиска ответа могут понадобиться средства отладки.
#include <string.h>
#include <stdio.h>
void copystring(char *s)
{
strcpy (s, "Goodbye!");
printf ("Result: %s\n", s);
};
int main()
{
copystring ("Hello, world!\n");
};