我需要实现一个接收三指针的matrix_create函数
它编译得很好,但是当我运行它时,我得到了分段错误错误,可能是因为我搞砸了内存分配中的某个地方。
但我找不到我的错误。
代码
regexp_substr('AA||CCCCCCCC|||FFFFFFFFFFF', '(.*?)(\||$)', 1, 6, 'c', 1)
答案 0 :(得分:2)
索引运算符[]
优先于间接运算符*
。
请参阅C Operator Precedence。
这意味着您必须更改
*m[i]
到
(*m)[i]
函数matrix_create
中的:
(*m)[i] = malloc(sp * sizeof(int));
if (!(*m)[i]) {
.....
}
并在主程序中:
printf("%i\n", (*m)[i][j]);