【发布时间】:2012-02-29 09:32:24
【问题描述】:
我有一个这样的数组:
typedef struct INSTR
{
char* str;
int argc;
} INSTR;
const static INSTR instructions[] = { {"blue",1}, {"green",2} };
然后我尝试发送bsearch,但收到Segmentation fault 消息:
int comp(const void *a, const void *b)
{
const INSTR *aa = (INSTR*)a;
const INSTR *bb = (INSTR*)b;
// if I "return 0;" here i get no error.
return strcmp(aa->str, bb->str);
}
.
char *str = get_string(src_buff, size);
bsearch(str, instructions,
sizeof(instructions) / sizeof(instructions[0]),
sizeof(instructions[0]), comp);
【问题讨论】:
-
str参数对bsearch的值是多少?您可以发布产生段错误的可编译示例吗? -
我更新了,抱歉。但现在我想我可以看到我的错误了,呵呵。我忘了传递一个结构,而是传递一个字符串。