A function in C that I wrote works like this:

```c
int filepath_from_request(obj **context) {
    strncpy(*context->request_filepath, *context->request,  1024)); 
}

```

The `obj` object itself is defined as

```c
typedef struct obj {
    int socket; 
    char request[1024];
    char request_filepath[1024]; 
} obj; 
...

obj *context = (obj *)malloc(sizeof(obj)); 

```

However, referencing `*context->request` in this way throws a fatal compile-time error, `'*ctx' is a pointer; did you mean to use '->'?`. Why is this the case? It would see to me that I am referencing the same object that was assigned a value to, but clearly there is something that I am not understanding about double pointers.