Когда мы заходим в функцию ptrTest указатель testString указывает на начало некоторой области памяти, в которой, как мы понимаем лежит строка "qwe rty uio" (а за ней нуль-терминатор).
Функция printf, как нам указывает, например,
документация своим первым параметром принимает как раз указатель на строку, которую нужно вывести. По этому первый пример работает как работает (правильно).
Когда вы разыменовываете указатель testString (который, напомню указывает на начало строки "qwe rty uio", то есть на букву "q") вы получаете ascii-код первой буквы этой строки. В вашем случае 0x71. Вы передаете его в функцию printf, интерпретируя как значение адреса некоторой строки, однако 0x71 - адрес невалидный. Вот потому и ошибка доступа.
В коде я хотел вывести указатель, а потом получить значение, на которое он указывает, путём разыменования.
Само значение указателя ( то есть число, обозначающее адрес в памяти ) выводим так
printf("%p\n", testString)
Значение, на которое он указывает
printf("%c", *testString)
- указывает, как мы помним на букву "q"