实现思路
- 遍历大型一维数组
bigArray
。
- 对于每个元素,检查其值是否等于目标值
target
。
- 如果相等,则将其下标存入
result
数组。
- 记录找到的下标的数量,以便返回有效结果。
核心代码
#include <stdio.h>
// 函数声明
int* findIndices(int bigArray[], int size, int target, int *resultSize);
int main() {
int bigArray[10000];
// 假设这里已经填充了数组元素
int target = 5;
int resultSize;
int *result = findIndices(bigArray, 10000, target, &resultSize);
for (int i = 0; i < resultSize; i++) {
printf("%d ", result[i]);
}
// 记得释放动态分配的内存
free(result);
return 0;
}
int* findIndices(int bigArray[], int size, int target, int *resultSize) {
int *result = (int*)malloc(size * sizeof(int));
if (result == NULL) {
// 内存分配失败处理
*resultSize = 0;
return NULL;
}
*resultSize = 0;
for (int i = 0; i < size; i++) {
if (bigArray[i] == target) {
result[(*resultSize)++] = i;
}
}
// 重新分配内存以匹配实际结果数量
result = (int*)realloc(result, *resultSize * sizeof(int));
return result;
}