The code snippet appears correct to me.
But why not go the simpler way, and use a vector of vector of int?
That way you won't have to worry about delete[]'ing the new[]'d arrays.
1 2 3 4 5 6 7 8 9
#include <vector>
// ...
std::vector<std::vector<int> > lBucket(iWorldSize, std::vector<int>(m));
// we can now use lBucket[i][j] where
// i >= 0 && i < iWorldSize and
// j >= 0 && j < m