Я обнаружил, что устраняю неполадки довольно долго и пытаюсь выяснить, что не так с моей функцией. Я должен сказать, что я не уверен на 100%, если это правильный синтаксис, чтобы делать то, что я хочу. У меня есть эта функция, которая предполагает инициализацию одномерного массива структур со списком данных. Все до этой функции работало и проверялось. Это проблематично c fun c:
Three* createThreeArr(Three** arr, ListThree** head, int counter)
{
int i = 0;
ListThree* pIndex = *head;
*arr = (Three*) calloc(counter,sizeof(Three));
for (i = 0; i < counter ; i++)
{
(arr[i])->col = pIndex->data.col;
(arr[i])->row = pIndex->data.row;
(arr[i])->value = pIndex->data.value;
pIndex = pIndex->next;
}
return *arr;
}
Я могу вставить в первую итерацию, но в VS19 выдано исключение. Вот как я передаю параметры:
*arr = createThreeArr(arr,head,counter);
Это структуры:
typedef struct Three
{
int value;
int row;
int col;
}Three;
typedef struct ListThree
{
struct Three data;
struct List* next;
}ListThree;
Это мой 'main'
void Ex3()
{
Three* arr = NULL;
ListThree* head = NULL;
createArrayAndList(matrix,rows,cols,&head,&arr);
}
Эта функция createArrayAndList:
int createArrayAndList(int** matrix,int rows, int cols, ListThree** head, Three** arr)
{
int i, j, counter = 0;
Three three;
for (i = 0; i < rows; i++)
{
for (j = 0; j < cols; j++)
{
if (matrix[i][j] == i + j)
{
counter++;
three = createThree(matrix[i][j],i,j);
*head = createThreeList(head,three);
}
}
}
*arr = createThreeArr(arr,head,counter);
return counter;
}
Спасибо, ребята, дайте мне знать, если вы хотите, чтобы я предоставил больше информации. Я надеюсь, что это не глупый вопрос. :(