Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为什么这个程序告诉我传递了无效的参数?_C++_Parameter Passing_2d Vector - Fatal编程技术网

C++ 为什么这个程序告诉我传递了无效的参数?

C++ 为什么这个程序告诉我传递了无效的参数?,c++,parameter-passing,2d-vector,C++,Parameter Passing,2d Vector,老实说,我甚至不知道我现在想做什么。但在这个函数开始工作之前,我不能再进一步了,它每次都抛出那个异常,出了什么问题?异常为“CS 330 19S,P1,Calvert,Program 1.exe中0x0F61CAB6(ucrtbased.dll)处未处理的异常:向认为无效参数致命的函数传递了无效参数” #包括 #包括 #包括 使用名称空间std; 结构运动学{ 矢量位置; 浮动方向; 矢量速度; 浮动旋转; }; StreeringOutput结构{ 向量线性; 浮动角度; }; 无效更新(St

老实说,我甚至不知道我现在想做什么。但在这个函数开始工作之前,我不能再进一步了,它每次都抛出那个异常,出了什么问题?异常为“CS 330 19S,P1,Calvert,Program 1.exe中0x0F61CAB6(ucrtbased.dll)处未处理的异常:向认为无效参数致命的函数传递了无效参数”

#包括
#包括
#包括
使用名称空间std;
结构运动学{
矢量位置;
浮动方向;
矢量速度;
浮动旋转;
};
StreeringOutput结构{
向量线性;
浮动角度;
};
无效更新(StreeringOutput转向、浮动时间、运动学k)
{
对于(int i=0;i<100;i++)
{
对于(int j=0;j<100;j++)
{
k、 位置[i][j]+=k.速度[i][j]*时间+
0.5*转向。线性[i][j]*时间*时间;
//上面的命令就是它抛出异常的地方
k、 速度[i][j]+=转向。线性[i][j]*时间;
}
}
k、 方向+=k.旋转*时间+0.5*转向角度*时间*时间;
k、 旋转=转向角度*时间;
}
int main()
{
智力测验;
运动亲属;
应力输出转向;
浮动时间=0.0;
出流孔的直径;
outfile.open(“Output.txt”);
对于(int i=0;i<100;i++)
{
更新(转向、时间、亲属);
时间+=0.5;
}
cin>>试验;
返回0;
}

程序启动时,您将创建以下对象:

Kinematic kin;
StreeringOutput steering;
这称为默认初始化,即所有成员都初始化为默认值。对于
向量
,它是空状态

但是
update
会做以下事情:

// i and j can be as large as 99
k.position[i][j]
k.velocity[i][j]
steering.linear[i][j]
但是
位置
等都是空的<代码>矢量s无法自动增长以满足您的需要。您正在编制越界的索引,这是未定义的行为

应正确初始化向量,以确保实际有100个元素:

Kinematic kin;
kin.position.assign(100, vector<float>(100));
// same for others
kin;
亲属位置分配(100,向量(100));
//其他人也一样

Post a请按要求在此处复制问题。您似乎从未在
向量中分配过空间,因此对其进行索引是非法操作。使用调试器进行调查。改为使用
steering.at(i).at(j)
,然后修复异常。可能实际代码已经简化,但更新by value
k
参数是无用的。
Kinematic kin;
kin.position.assign(100, vector<float>(100));
// same for others