Нужно повернуть двумерный массив из функции - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Как правильно возвратить двумерный массив из функции? Перед компиляцией вылетает следующая ошибка:

cannot convert `int (*)[2]' to `int**' in return

#include <stdio.h>
#include <conio.h>
#include <graphics.h>
#include <time.h>
 
int** ReadPointsFromFile(char *filename)
{
    const int len = 10;
    int i,j,k,n;
    char temp[len], temp2[len];
    FILE *f = fopen(filename, "r");
    if(f == NULL)
    {
        puts("Невозможно открыть файл!");
        getch();
        exit(1);
    }
    for(n=0; !feof(f); n++)
    {
        fgets(temp, 1, f);
    }
    int points[n][2];
    fseek(f,0,SEEK_SET);
    for(j=0; !feof(f) && j<n; j++)
    {
        fgets(temp, len, f);
        for(i=0; temp[i]!=','; i++)
            temp2[i] = temp[i];
        temp2[i] = '\0';
        points[j][0] = atoi(temp2);
        for(k=0, i++; temp[i]!='\0'; i++, k++)
            temp2[k] = temp[i];
        points[j][1] = atoi(temp2);
    }
    fclose(f);
    return points;
}
 
int main()
{
    int **points; //массив точек, где [n][0] - координата x; [n][1] - координата y
    points = ReadPointsFromFile("in.txt");
    //Что-то далее делаем с двумерным массивом...
    //
    getch(); //ждем реакции пользователя
}

Решение задачи: «Нужно повернуть двумерный массив из функции»

textual
Листинг программы
int points[n][2]; /* n - переменная, а не константа */

Объяснение кода листинга программы

  1. Объявляется двумерный массив points типа int с размером n на 2.
  2. Переменная n не является константой, она может изменяться в процессе выполнения программы.
  3. Каждый элемент массива points имеет тип int и содержит два значения, которые могут быть использованы в качестве координат (x, y) в двумерном пространстве.
  4. В каждой строке массива points первое значение представляет собой x-координату, а второе значение - y-координату.
  5. Массив points может содержать любое количество элементов, в зависимости от значения переменной n.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.167 из 5
Похожие ответы