我想实现一个从对象数组中选择一个随机对象并将其返回给我的函数。它应该类似于(在 C++ 中而不是伪代码中):
getRandomObject(objectList) {
return objectList[int(random(length of objectList))];
}
我当前的代码看起来像这样,但似乎不起作用:
//definition of random selector
object getRandomObject(Object* objectList) {
return objectList[int(ofRandom(0, sizeof(objectList)))];
};
//create a pointer for the listOfObjects
object* listOfObjects;
//create an empty object to put the randomly selected object in
object randomObject;
//later in the code, populate the array:
object* listOfObjects[] = {
new Object(),
new Object(),
new Object()
};
//select random object
randomObject = getRandomObject(listOfObjects);
但这似乎返回了分段错误。我注意到的几个问题:
sizeof() 返回 getRandomObject 中指针的大小,而不是数组的大小。有没有获得数组大小的好方法?它可能涉及不为数组使用 float* 指针。这是向量的一个很好的用例吗?
我认为大部分问题在于我如何创建我的数组,而不是我如何从中选择随机对象。我对 C++ 比较陌生(来自 Java 背景),所以很多指针/引用/内存管理对我来说都是新的。
谢谢!