【发布时间】:2016-11-22 19:06:23
【问题描述】:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
void adder(int **matrix1, int **matrix2, int **matrix3) {
for(int i = 0; i < 3; i++){
for(int j = 0; j < 3; j++){
matrix3[i][j] = matrix1[i][j] + matrix2[i][j];
}
}
}
int main() {
int matrix1[3][3] = {{1,1,1},{1,1,1},{1,1,1}};
int matrix2[3][3] = {{2,2,2},{2,2,2},{2,2,2}};
int matrix3[3][3];
adder(matrix1, matrix2, matrix3);
for(int i = 0; i < 3; i++){
for(int j = 0; j < 3; j++){
printf("%d\t", matrix3[i][j]);
}
printf("\n");
}
}
执行此操作时没有错误,但警告说“从不兼容的指针传递参数”。我尝试使用 int *matrix1 将加法器输入作为指针使用,但这也不起作用。
我能做什么?
【问题讨论】:
-
将 int **matrix1 替换为 int matrix1[3][3],对其他参数执行相同操作。或者使用 malloc 分配 matrix1
-
void adder(int (*matrix1)[3], int (*matrix2)[3], int (*matrix3)[3]) { -
也许question#5329107 可能会有所帮助
-
是的,这行得通,但任务是专门使用指针。
标签: c function pointers matrix