#include <stdio.h>
#include <stdlib.h>
#include<string.h>
// Here the parameter is an array of pointers
int* assign(char** arr,char** q,int* j, int m)
{
printf("ping 0\n");
int c=0;
int k;
for (int i = 0; i < m; i++)
{
for(int f=0;f<m;f++)
{
k=strcmp(arr[f],q[i]);
printf("ping 1\n");
if(k==0)
c++;
}
j[i]=c;
printf("ping2\n");
c=0;
}
return j;
}
// Program to pass 2D array to a function in C
int main(void)
{
int m = 3;
int n = 3;
int* g;
int j[10];
// dynamically create array of pointers of size m
char **arr = (char **)malloc(m * sizeof(char *));
char **q = (char **)malloc(m * sizeof(char *));
// dynamically allocate memory of size n for each row
for (int r = 0; r < m; r++)
{
arr[r] = (char *)malloc(n * sizeof(char));
q[r]=(char *)malloc(n * sizeof(char));
}
printf("enter the strings\n");
for (int i = 0; i < m; i++)
{
scanf("%s",arr+i);
}
printf("enter the queries\n");
for (int i = 0; i < m; i++)
{
scanf("%s",q+i);
}
g=assign(arr,q,j,m);
for (int i = 0; i < m; i++)
printf(" %d\n",g[i]);
return 0;
}
Это код для ввода некоторых слов в массив строк и набора запросов в другой массив строк. задача состоит в том, чтобы в основном найти количество появлений запрошенных строк из исходного массива, поместить их в одномерный массив и вернуть его. Но ошибка сегментации возникает, когда for l oop внутри функции assign пытается получить доступ к строкам. Скажите, пожалуйста, в чем я ошибаюсь и почему.