Well, there is also a trick you can use.
First of all, do you want it to contain a binary one, or the character one (those are two different things!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!)
If you want a binary one, it's easy.
If you want a character one, you have to add 0x030 (hex 30 = the character "0") or 48
and then you can use a trick. A string is anything NULL terminated. Any integer (they ARE at least 16 bit) are NULL terminated if smaller than 256.
But you again need a pointer (a string variable is always a pointer)...
you could do
i=1;
strcpy((char *)task->data, &i );
or
i=1;
i+=0x30; // alternatively i+=48;
strcpy((char *)task->data, &i);
It's kinda ugly, but it will work.
Edit: fixed the fact that ; ) will be made a

when written together.