You need to provide some memory, where the result of the concatentation can be stored into. For example:
char buffer[1024]; strcpy(buffer, "My name is: "); strcat(buffer, argv[1]);
Note, however, that this is error prone: if the value of argv[1] combined with the prefix string is longer than 1024 characters, this produces a buffer overflow. So, maybe something like this:
char* prefix = "My name is: "; int length = strlen(prefix) + strlen(argv[1]) + 1; char* buffer = malloc(length); if (!buffer) abort(); else { strcpy(buffer, prefix); strcat(buffer, argv[1]); /* Do something with buffer here. And don't * forget to free it, once you no longer need * it. This is C -- no garbage collection. */ free(buffer); }