буду страшно благодарен коли кто знает подскажет... свои идеи кончились

есть 2 указателя на char.
char *expression, *temp;
нужно по очереди присваивать значения строки expression строке temp, если это не пробел. делаю так:
while (*expression!='\0')
{
if (*expression!=' ') {*temp = *expression; temp++;}
expression++;
}
компилятор съедает, а в винде вылазит ошибка, что temp используется до того как был проинициализирован....
как грамотно скопировать значение ячейки памяти через указатели???