Какую можете посоветовать литературу, ресурсы по указателям и динамическим массивам?
В двух словах: указатель хранит адрес некоторой ячейки памяти. Через разыменование указателя можно читать/писать эту память. Арифметические операции типа сложения и вычитания над указателями - изменение указателя на столько байт, сколько занимает одна единица данных, на которую он указывает. Удобно для варианта "получить 123-й DWORD из массива, когда массив начинается с 0x400000" и подобных.
Используй литературу по C. Много практики с указателями есть у Прата. Но много практики не нужно, нужно хорошее объяснение, а оно есть в основной книге по C.