A linked list is designed such that it does not occupy a contiguous section of memory like an array does. The only way to convert a LL to an array is to copy the data to a contiguous section of memory element by element, something like this pseudo-code:
LinkedList current = root;
datatype[] array = new array[linked_list_count];
int i = 0;
while (current->next != null)
{
array[i] = current->data;
current = current->next;
i++;
}
Its a little more complicated if it truely is C (not C++), since you have to allocate the correct amount of memory and increase the pointer value by the size of the data type. You could also create an array of pointers and just fill the array with the location of each linkedlist->data type which is more like a shallow copy of the linked list.