Question: I want to declare character array and later want to fill it. But getting error:

```
char line[BUFSIZE+1];
strcpy(line,"Memory is Full", sizeof(line));

```

Error is:

```
wrong number of arguments in call to strcpy. 

```

Is there any alternative to achive this?

Answer: 
`strcpy()` takes 2 arguments, `strncpy()` takes 3.

I think you were thinking about using [strncpy](http://www.cplusplus.com/reference/clibrary/cstring/strncpy/), that takes destination, source, and size. 

ie:

```
int main()
{
    char i[6];
    strncpy(i, "Hello", sizeof(i));
    printf("%s\n", i);    
    return 0;
}

>> ./a.out
>> Hello

```

**Note:** You have to append the `'\0'` yourself if you completly fill your char[], otherwise `strncpy()` will do it for you (as in my example).
If you have it, use `strlcpy()`. It does what you might expect `strncpy()` to do.

Failing that, I would recommend using `snprintf()`, if you have it.