我是C ++的新手,我正在尝试编写一个函数来解决this的挑战。我的代码如下:
<?php
if(isset($_GET['orderId']) && $_GET['orderId']!='')
{
$orderid=$_GET['orderId'];
}
else
{
echo 2;
}
$orderid='';
$sqlorder = "SELECT tracking_id,order_id from do_order where order_id='".$orderid."' limit 1";
$resultdoorder = $db_handle->runSelectQuerys($sqlorder);
if($resultdoorder['tracking_id']=='')
{
echo 0;
//var_dump("tracking_id");
}
除其他外,此代码引发错误:
“在'arr'中要求成员'size'的要求,属于非班级类型 ‘int *’int i = arr.size();“
有人可以帮我理解这是什么意思吗?我是否要尝试从类外部引用某些内容,以便需要使用指针?数组声明方式有问题吗?
提前谢谢!
答案 0 :(得分:1)
C风格的数组不是对象,因此不能在其上调用size
。它只退化为一个指针,如果您在此处传递它
void printKMax(int arr[], int n, int k){
然后,此功能甚至都不知道大小。要解决此问题,您需要单独传递大小,作为另一个参数。另外,您可以只使用诸如std::vector
之类的数据结构,在这种情况下,我建议您不要使用普通数组。您将拥有int arr[n];
而不是std::vector<int> arr;
。然后,您可以在std::vector
函数中查询printKMax
中的size。访问向量使用与访问数组相同的语法,并且使用cin >> arr
填充向量的工作方式与您现在使用的方式类似。
答案 1 :(得分:0)
您可以使用此语句获取数组的长度
int length = (sizeof(arr)/sizeof(*arr));