我尝试了一个程序来返回一个数组,其中包含找到特定输入值的数组的索引,但是每次运行都会导致错误,这似乎是无限的运行时间。该错误似乎是在打印出找到的最后一个索引后立即发生的。
任何人都可以帮忙吗?(旁注:我已经看过多页关于删除指针的内容;我应该在这里这样做吗?)
忘了提 - 我希望返回数组的第一个插槽保存数组的大小,以便稍后在程序中轻松访问它
#include <iostream>
#include <vector>
using namespace std;
int* linearSearch(int* n, int k, int f) {
// Input: Index 0 Address ; Size of Array; Element to Search
// Output: Array of Found Indicies
vector <int> a;
int* b;
for(int i = 0; i < k; i++)
if(n[i] == f)
a.push_back(i);
*b = a.size();
for(int i = 0; i < a.size(); i++)
b[i + 1] = a[i];
return b;
}
int main() {
int c[10] = {4, 4, 6, 3, 7, 7, 3, 6, 2, 0};
int* k = linearSearch(&c[0], sizeof(c)/sizeof(int), 4);
for(int i = 0; i < k[0]; i++) {
cout << "Found at index: " << k[i + 1] << endl;
}
return 0;
}