gpt4 book ai didi

c++ - 比较器 -1073741819 (0xC0000005)

转载 作者:太空宇宙 更新时间:2023-11-04 16:04:51 26 4
gpt4 key购买 nike

我正在尝试使用其他方法比较数组中的数字。我不确定它是怎么称呼的,但它是这样的:

template<typename T>
using Comparator = bool(*)(T, T);

我的代码得到了构建,但是当我启动它时,它在这一行崩溃了:

if(comp(arr[i], arr[i+1])){

错误信息:-1073741819 (0xC0000005)

我做错了什么,这个比较值的方法叫什么名字?

#include <iostream>
using namespace std;

template<typename T>
using Comparator = bool(*)(T, T);

template<typename T>
void theHell(T arr[], int len, Comparator<T> comp){

for(int i = 0; i < len - 1; i++){
if(comp(arr[i], arr[i+1])){
cout << "pice of code" << endl;
}
}
}

int main()
{
int arr[] = { 1, 3 ,3 ,4, 4, 67, 5, 32, 4};
Comparator<int> comp;
int len = sizeof(arr);
theHell(arr, len, comp);
return 0;
}

最佳答案

Comparator<int>是一个函数指针类型,需要 2 int s 并返回 bool .

这意味着comp是指向函数的指针。什么功能?你还没有告诉它使用什么功能。您需要将它指向这样的函数:

bool compare_func(int a, int b) { return a < b; }
...
int main() {
Comparator<int> comp = compare_func;

关于c++ - 比较器 -1073741819 (0xC0000005),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37268255/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com