我有类似下面的代码,它不起作用并且不断抛出指针错误。我应该怎么做?
#include <stdio.h>
int mat = {{1, 2, 3, 4},
{1, 4, 3, 2},
{9, 8, 7, 6}};
int main()
{
do_something_to_matrix(get_matrix());
}
get_matrix()
{
return &mat;
}
do_something_to_matrix(int matrix[][4])
{
//do some stuff
}
答案 0 :(得分:1)
一个样本
#include <stdio.h>
int mat[][4] = {
{1, 2, 3, 4},
{1, 4, 3, 2},
{9, 8, 7, 6}
};
void do_something_to_matrix(int matrix[][4]);
int (*get_matrix(void))[4];
int main(void){
do_something_to_matrix(get_matrix());
return 0;
}
int (*get_matrix(void))[4]{
return mat;
}
void do_something_to_matrix(int matrix[][4]){
//do some stuff
printf("%d\n", matrix[2][1]);//8
}