You can. But you said that your C and C# are separate applications. By loading DLL of another application in your C application you will execute a copy of that DLL. It will not affect other already started application with the same DLL.
DLL is just a list of commands for processor. You can load and execute it within any number of application. Each time it will be loaded in particular process memory and all variables will be saved in that memory. Each time it will be separate.
If you a really have two application (two exe files) than you cannot load libraries of one into another to make them communicate.
If you actually have C program and C# dll that performs some operation you need then you can load it into C program. It is cold CLR hosting.
You can find documentation
here.