can I pass dynamic arrays to a fwrite and/or a fread function?
Yes, of course. As long as it's an actual array, such as one returned by new[], malloc(), or contained in an std::vector, and not something that pretends to be an array, such as the internal contents of an std::deque, you can pass it.