我收到错误:
从int到int *的转换无效。
我没有创建任何int *(我认为),当我将违规行更改为int *时,没有构建错误,但程序在启动时崩溃。
这是我的代码:
<activity
android:name=".NotifActivity"
android:parentActivityName=".HomeActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".HomeActivity" />
</activity>
<activity
android:name=".NotifViewActivity"
android:parentActivityName=".NotifActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".NotifActivity" />
</activity>
当我调用algorithmTest()时,它会抛出错误;这是:
//Main:
int main(){
//Varibales:
Random randomInt;
clock_t start;
clock_t End;
double duration;
double clocksPerSec;
int result;
int arraySize;
//Repeat 100 times:
for(int i=1; i<=100; i++){
//Set array size:
arraySize = i*500;
//Create the array:
int testArray[arraySize];
//For the array size:
for(int j=0; j<arraySize; j++){
//Add random number to array:
testArray[j] = randomInt.randomInteger(1, 10000);
}
//Run the test:
start = clock();
result = algorithmTest(testArray[arraySize], arraySize);
End = clock();
//Calculate execution time:
duration = End - start;
clocksPerSec = duration/CLOCKS_PER_SEC;
//Display the result:
cout << "The median is: ";
cout << result << endl;
cout << "Exection time was: ";
cout << clocksPerSec;
cout << "s\n" << endl;
}
//Return 0:
return 0;
}
答案 0 :(得分:1)
result = algorithmTest(testArray[arraySize], arraySize);
应该是
result = algorithmTest(testArray, arraySize);
您的函数int algorithmTest(int testArray[], int Size)
将int[]
作为第一个参数,而您传递testArray[arraySize]
,其中[i]
运算符表示获取ith
元素处的值testArray
,int
。因此,您会遇到该错误。
为了澄清某些内容,行[...]
中的int testArray[arraySize];
与行[...]
中的result = algorithmTest(testArray[arraySize], arraySize);
不同:第一个用于指示数组&#39}。大小,而第二个用于访问元素。
答案 1 :(得分:0)
查看AlgorithmTest的定义。你需要一个int [](也称为int *)作为第一个参数,但是当你调用它时你给它一个实际的int