artist
and song
are pointers. They do not point anywhere valid. You cannot use them before you make them point somewhere valid.
Try arrays instead.
#include <stdio.h>
int main(void) {
char artist[100], song[100]; // arrays, not pointers
printf("Please copy all of the songs you wish to download below.\n");
printf("When you have finished, please input a full stop.\n\n");
if (scanf("%99[^-]-%99s", artist, song) != 2) /* error */;
printf("%s %s\n", artist, song);
return 0;
}
Or, if you want to use pointers, allocate memory for them before input
#include <stdio.h> /* printf(), scanf() */
#include <stdlib.h> /* malloc(), free() */
int main(void) {
char *artist, *song;
artist = malloc(100);
if (!artist) /* error */;
song = malloc(100);
if (!song) /* error */;
printf("Please copy all of the songs you wish to download below.\n");
printf("When you have finished, please input a full stop.\n\n");
if (scanf("%99[^-]-%99s", artist, song) != 2) /* error */;
printf("%s %s\n", artist, song);
free(song);
free(artist);
return 0;
}