Handles (pointers to pointers) are quite common when dealing with an OS which dynamically assigns memory and I think pointers and their arithmetic are the most difficult parts for anyone learning C; they are also one of the most useful abstractions in C.
I totally agree. Pointers in assembler have always been so obvious and useful to me, but in C they've always twisted my mind and made me confused. I used to understand and use them completely, but over the years of not programming in C at all I forgot it all. Starting over (mostly).
BTW I'm watching what you're doing with these dsPICs, since I'll be spending some time with them in the not too distant future, so thanks for blazing the trail!
I'm having fun with it. There's diddly on the web for C30 examples, and Microchip's examples are horrible. So I'll post my little newb programs and projects occasionally for others to get started with.
I have a 24H chip too that I couldn't program with the Junebug (no 3.3V). Just got a PICkit2, so I'll be tinkering with that chip as well.