在以下代码中面临分段错误。任何人都可以帮我解决它吗?
#include<stdio.h>
int* multiply(int *arr1, int *arr2, int m);
int main(void){
int m = 0;
printf("Enter size of array1 and array2 >");
scanf("%d",&m);
int arr1[m], arr2[m];
printf("First array>");
for(int i = 0; i < m; ++i){
scanf("%d", &arr1[i]);
}
printf("Second array> ");
for(int j = 0; j < m; j++)
scanf("%d", &arr2[j]);
int* result = multiply(arr1, arr2, m);
for(int i = 0; i < m; ++i){
printf("%d ", result[i]);
}
}
int* multiply(int *arr1, int *arr2, int m){
int res[m];
printf("ok");
for(int i = 0; i < m; ++i){
res[i] = arr1[i] + arr2[i];
}
printf("ok");
return res;
}
输出应显示为
输入数组 1 和数组 2 的大小 >3
第一个数组>5 1 7
第二个数组> 2 4 2
结果 > 7 5 9
我的输出
输入数组 1 和数组 2 的大小 >3
第一个数组>5 1 7
第二个数组> 2 4 2
分段故障