我只是好奇出现以下错误的原因是什么:我正在尝试确定整数数组的大小.
当我在main函数中找到数组的大小时,此代码返回正确:
int program[12] = { 1007, 1008, 2007, 3008, 2109, 1109, 4300, 0, 0, 0, -99999 };
cout<<sizeof(program)/sizeof(program[0])<<"\n";
Run Code Online (Sandbox Code Playgroud)
但是如果我按程序将程序传递给函数,它总是返回2:
void Sipmletron::load(int program[])
{
int length=sizeof(program)/sizeof(program[0])
std::cout<<length<<"\n";
memory= new int[length];
}
Run Code Online (Sandbox Code Playgroud)
您不能按值传递数组.该参数作为指向数组的第一个元素的指针传递,因此您实际上在计算sizeof(int*) / sizeof(int).