kzrdude is referring to the allocation of the Array struct on the heap. It should be something like this instead:
Array array_create(size_t size, size_t sizeof_data) {
Array result;
result.size = size;
result.capacity = size;
if(size) {
result.data = malloc(size * sizeof_data);
} else {
result.data = NULL;
}
return result;
}