because arrays in c have a predefined size it's hard to store dynamic data in it.

I would suggest using c++ and then either a linked list of channel objects, or a vector because both are variable of size


If it ain't broken, don't fix it!