I think this will be more efficient:
```julia
function niche_model_graph{T<:Real, GT<:AbstractGraph}(g::GT, S::Integer, C::T)
    n = Array(T, S)
    r = Array(T, S)
    c = Array(T, S)
```