C++ 混合目标C++;和C++;,函数不返回值
我正在尝试将我在Windows上编写的一些代码移植到带有Xcode的Mac应用程序中,我遇到了一个非常奇怪的问题。我的C++函数不再返回一个值,我使用调试器来确认返回的变量确实包含一个值(在调用函数的内部),但是我的函数将我的函数赋值为null。C++ 混合目标C++;和C++;,函数不返回值,c++,objective-c,objective-c++,C++,Objective C,Objective C++,我正在尝试将我在Windows上编写的一些代码移植到带有Xcode的Mac应用程序中,我遇到了一个非常奇怪的问题。我的C++函数不再返回一个值,我使用调试器来确认返回的变量确实包含一个值(在调用函数的内部),但是我的函数将我的函数赋值为null。 // calling the function vec3* vs = getRandomizedPoints(NUM_POINTS, a, b); // function being called vec3* getRandomizedPoints(
// calling the function
vec3* vs = getRandomizedPoints(NUM_POINTS, a, b);
// function being called
vec3* getRandomizedPoints(unsigned int numOfPoints, vec3 startRange, vec3 endRange)
{
unsigned int i;
vec3* ret = (vec3*)malloc(sizeof(vec3) * numOfPoints);
srand(clock());
for (i = 0; i < numOfPoints; ++i)
{
ret[i].x = randWithinRange(startRange.x, endRange.x);
ret[i].y = randWithinRange(startRange.y, endRange.y);
ret[i].z = randWithinRange(startRange.z, endRange.z);
}
return ret;
}
//调用函数
vec3*vs=getRandomizedPoints(NUM_POINTS,a,b);
//正在调用的函数
vec3*getRandomizedPoints(无符号整数点、vec3起始点、vec3结束点)
{
无符号整数i;
vec3*ret=(vec3*)malloc(sizeof(vec3)*numOfPoints);
srand(clock());
对于(i=0;i
ret返回时确实包含一个值,但在调用代码中vs变量仍然为空,有人能看到我做错了什么吗?我没有看到任何错误。这是准确的密码吗?您确定要在代码的后期访问
vs
吗?这就是确切的代码,我没有在代码的后期访问它。一旦我改变了vs变量是在函数外部填充的,但是当我尝试将函数分配给我的静态vec3*vecs=NULL;它根本不起作用,代码中的vecs稍后会被另一个文件访问,但从vs分配给vecs根本不起作用。实际上,我只是通过使静态变量成为一个类的成员来实现这一点,为什么这样做我不知道??