Right now I'm looking over some C code and they have some pointer syntax that I'm confused about. So first they declared a pointer like so:

```
int32_t *p_tx_buf=NULL; 

```

Then later on they wrote:

```
p_tx_buf = malloc(...math... );

```

The stuff in the middle is just math to calculate the size of a file, I'm assuming it's not important. After that, they wrote:

```
p_tx_buf[0] = 0

```

I'm rather confused about the `[]`. How does that work with an integer pointer? I thought the `[]` was for indexing things, so I'm confused on how you can use this with a pointer.