<s>[INST] Here's the block of code:
```
void print_list(const int **list, int length) {
	int i;
	for (i=0; i<length; i++) {
		printf("Element %d: %d\n", i, *(list+i));
	}
}

int main(void) {
	int *a = (int*)malloc(2*sizeof(int));
	int *b = (int*)malloc(2*sizeof(int));
	a[0] = 5;
	a[1] = 6;
	b[0] = 15;
	b[1] = 20;
	int *list[] = {a, b};
	int length = sizeof(list)/sizeof(*list);
	print_list(&list, length);
	print_list(&list, length);
	free(a);
	free(b);
	return 0;
}
```
The `print_list` function prints the first element of each array in the list, not the contents of the arrays. What changes should be made to fix this?[/INST]