inline void cpyp(char* destination, const char* source){
while(*destination++ = *source++);
}
int main(int argc, char *argv[])
{
char* pstr1 = "hello world!";
char* pstr2;
cpyp(pstr2, pstr1);
}
pstr2
не инициализирован ничем, а потому указывает на произвольную область памяти. В подавляющем большинстве случаев попытка записать что-либо куда попало приведёт к segmentation fault. Исправить можно инициализировав его указателем на область в куче:char* pstr2 = malloc(13);
cpyp(pstr2, pstr1);
free(pstr2);