std::vector<simgrid::s4u::Host*> hosts = e->get_all_hosts();
sg_host_t* res = xbt_new(sg_host_t, hosts.size());
- memcpy(res, hosts.data(), sizeof(sg_host_t) * hosts.size());
+ std::copy(begin(hosts), end(hosts), res);
return res;
}
{
std::vector<sg_disk_t> list = host->get_disks();
*disk_count = list.size();
- *disks = static_cast<sg_disk_t*>(xbt_malloc(sizeof(sg_disk_t) * (*disk_count)));
- for (size_t i = 0; i < *disk_count; i++)
- (*disks)[i] = list[i];
+ *disks = xbt_new(sg_disk_t, list.size());
+ std::copy(begin(list), end(list), *disks);
}
// =========== user-level functions ===============