Я так понимаю, это фрагмент кода, следовательно, я думаю, что вы уже в том числе string.h
strcpy определяется как:
char * strcpy ( char * destination, const char * source );
В
strcpy(lines[num_righe-1], line);
строк [num_righe-1] это символ, а не символ *
Так и должно быть
strcpy(lines + (num_righe-1), line);
Как писал muntiful, похоже, что вы пытаетесь сделать строки массивом строк. Если это так, то ваше определение линий неверно.
Кроме того, не забывайте, вы должны проверить, что realloc не возвращает NULL.
lines = realloc(lines, (sizeof(char)*LINE_SIZE)*num_righe);
if (!lines) //MUST HANDLE NULL POINTER!!
/* string copy code here*/