C strcat - advertencia: pasar arg 2 de `strcat 'hace que el puntero sea un entero sin una conversión

Estoy teniendo un problema con el programa de abajo. Estoy tratando de escanear un comando de cadena ingresado por el usuario para ciertas palabras. Mi principal problema ahora es que cuando ejecuto lo siguiente recibo una advertencia que dice que "pasar arg 2 de` strcat 'crea un puntero desde un entero sin una conversión ". Mi intención es recorrer los primeros tres caracteres de la cadena "s", concatenarlos en una cadena "firstthree", y luego verificar el valor de la cadena "firstthree". Cualquier ayuda es apreciada.

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <readline/readline.h>
#include <readline/history.h>

/* Simple example of using gnu readline to get lines of input from a user.
Needs to be linked with -lreadline -lcurses
add_history tells the readline library to add the line to it's
internal histiry, so that using up-arrow (or ^p) will allows the user
to see/edit previous lines.
*/

int main(int argc, char **argv) {
    char *s;
    while (s=readline("Enter Name: ")) {
            add_history(s); /* adds the line to the readline history buffer */
            printf("Hello %s\n",s);/*output message to the user*/
            char *firstthree;
            int i;
            for(i = 0; i < 3; i++){
                    strcat(firstthree, s[i]);
                    printf("Hello %s\n",firstthree);//checking to see the character added to the end of the string
            }
            printf("Hey %s\n",firstthree);/*prints out the first three characters*/
            free(s); /* clean up! */
            free(firstthree);
    }
    return(0);

}

Respuestas a la pregunta(2)

Su respuesta a la pregunta