Q:

Convert words in char array to a line with single space

Convert the given char *input[] to a line with single space 
Inputs:
int n =3;
char *result;
char *input[]= {"one", "two", "three" };
result = convertToLine(n, input)

Code
char *convertToLine(int n, char *input[]) {
    int size = n* 2;
    char* string = (char*)malloc(sizeof(char)*size);        
    int i = 0;
    int k = 0;
    while (i <size){
        string[i] = *input[k];         
        string[i+1] = ' ';
        i++;
        k++;
     }
   string[n] = '\0';
   return string;
}

My Output:
Null
Expected Output:
result = "one two three"

A:

If I understand your question, your problem is you cannot assign strings, e.g.
string[i] = *input[k];

Above, you are attempting to assign the 1st characters of the kth pointer to string[i] which will read beyond the end of input. It is equivalent to:
*(input[k] + 0)

or
input[k][0]

See: C Operator Precedence
Instead you need to either call strcpy or simply use an additional loop to copy each of the desired characters, e.g.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char *convertToLine (size_t n, char *input[])
{
    size_t  ndx = 0,        /* string index */
            len = 0;        /* length of combined strings */
    char *string = NULL;    /* pointer to string */

    for (size_t i = 0; i < n; i++)  /* length of all in input */
        len += strlen (input[i]);

    string = malloc (len + n);      /* allocate len + n-1 space + 1 */
    if (!string) {                  /* validate allocation */
        perror ("malloc-string");
        return NULL;
    }
    for (size_t i = 0; i < n; i++) {        /* for each string */
        if (i)                              /* if not 1st */
            string[ndx++] = ' ';            /* add space */
        for (int j = 0; input[i][j]; j++)   /* copy input string */
            string[ndx++] = input[i][j];
    }
    string[ndx] = '\0';     /* nul-terminate */
    return string;
}

Adding a short example with your input you would have:
int main (void) {
    char *input[]= {"one", "two", "three" },
        *result = NULL;
    size_t n = sizeof input / sizeof *input;

    result = convertToLine (n, input);
    if (result) {
        printf ("result: '%s'\n", result);
        free (result);
    }
}

Example Use/Output
$ ./bin/str_combind
result: 'one two three'

