I think you want to store the vector over a longer time. For this you have to allocate some memory to hold the values:
Code:
VECTOR* crowd_pos[100];

void main() {
     
     //initialize the vector
     crowd_pos[0] = malloc(sizeof(VECTOR));
     
     //now the struct is ready to use
     vec_set(crowd_pos[0], vector(1,2,3));
}



For saving vectors temporary (manipulation in one function or passing them to another function etc) you can use this:
Code:
VECTOR* crowd_pos[100];

void main() {

     //assign a temporary vector
     crowd_pos[0] = vector(1,2,3);
     
     //...
}

from the manual:
The vector pointers have a limited lifetime because there are only 64 different vectors available for this function, that are used cyclic.So use this only for passing temporary vectors to functions, but not for permanent vector pointers.