Когда вы хотите получить доступ к элементу, вы должны сначала разыменовать свой указатель, а затем проиндексировать нужный элемент (который также разыменовывается).т.е. вам нужно сделать:
printf("\nvalue:%c", (*ptr)[0]);
, что совпадает с *((*ptr)+0)
Обратите внимание, что работа с указателем на массивы не очень распространена в C. Вместо этого нужно просто использоватьуказатель на первый элемент в массиве, и либо обрабатывать длину как отдельный элемент, либо помещать значение senitel в конец массива, чтобы можно было узнать, когда заканчивается массив, например,
char arr[5] = {'a','b','c','d','e',0};
char *ptr = arr; //same as char *ptr = &arr[0]
printf("\nvalue:%c", ptr[0]);