The indices of x in the inner loop are reversed. You should be referencing x[k][i] not x[i][k]. It's not working either way, it's just that it's crashing only if you have empl > pro because you are creating arrays with pro+1 elements instead of pro
elements.
You can avoid writing the inner loop altogether by using IloSum.
for(k = 0; k < pro; k++) {
x[k] = IloNumVarArray(env, empl, 0, 1); // don't add additional elements
}
for(k = 0; k < pro; k++) {
model.add(IloSum(x[k]) >= e[k] * p[k]);
}