我有一个结构:
typedef struct DATA {
char *key;
char *parentKey;
char *description;
} DATA;
以及一组实例:
DATA *data_array = NULL; // the global data array
int m_arrayLength = 0; // Keeps track of the number of elements used
填充数组后,我将使用它对其进行排序qsort
void SortData()
{
qsort(data_array, m_arrayLength, sizeof(DATA), CompareDataByKey);
}
int CompareDataByKey(const void *a, const void *b)
{
DATA *ia = (DATA *)a;
DATA *ib = (DATA *)b;
return strcmp(ia->key, ib->key);
}
这正在按预期工作。我正在尝试实现一种在数组中搜索特定项目的方法,这就是我卡住的地方
DATA FindDataByKey(char *key)
{
DATA *searchData = malloc(sizeof(DATA));
searchData->key = key;
DATA result = bsearch(
searchData,
data_array,
m_arrayLength,
sizeof(DATA),
CompareDataByKey);
free(searchData);
return result;
}
gcc
编译器正在返回消息:
p_CONNECT.c:在函数“FindDataByKey”中:
p_CONNECT.c:87:错误:初始化程序无效
make:最后一条命令的错误代码为 1。
在线的CompareDataByKey);
谁能在我编写的代码的上下文中解释这个错误的含义?