Jeez louise, people, please stop confusing poor
beastie7 talking about projects and personal inter-communications. He hasn't even decided on a language yet. ?
For crying out loud, all he wants is an insight into what's a better language to focus on...
But seriously:
It's really not a decision you have a choice in. If you want to write device drivers or any code remotely to do with the kernel then it's C. Period.
In a proper structured course or book on C, it will begin by going through the keywords, assignment, functions, tests, then arrays (stack based), "strings", I/O, data types etc. Only after a thorough understanding of program flow and C basics should it begin hitting you with heap based stuff (like free/malloc) and, what most people dread most about C,
* pointers *.
Any book that starts with a discussion on double indirection and dynamic structure creation is most assuredly too advanced.
I will not beat around the bush here, you have a VAST amount of learning to do. If you were conversant with another language and had written code in it, I would suggest converting that code into C as a way of learning (if possible).
As you don't then I would suggest you get yourself into an introductory course at a local university or whatever aptly named tertiary institution exists in your area.
Failing that, take a look at a first year university course on C and see what text books they use and buy them. Most of these have exercises and tests at the end of each chapter to test your knowledge.
Don't take this the wrong way, but because you're a complete n00b

you should aim to do some introductory course to find out if both programming and programming in C is for you.
I tutored C back in the day and saw quite a few smart kids give up and change university course streams because they couldn't take to programming.