mallocでメモリを確保する意味がわかりません。
いきなり
int a[1024]
とかで変数を宣言しただけでは、メモリは確保されないんでしょうか?

また、すべてのmallocはcallocで代用してもいいんでしょうか?