Определить, сколько памяти выделил malloc под массив - C (СИ)
Формулировка задачи:
Подскажите, пожалуйста, можно ли узнать, сколько памяти выделено под массив, на который ссылается указатель, к примеру int *array ?
Суть проблемы в том, что есть файл, в котором на первой строке записано кол-во строк матрицы, на второй строке файла - кол-во столбцов матрицы, далее записана сама матрица (строка матрицы в отдельной строке файла). Все это дело считывается в одномерный массив структур (в структуре хранится позиция элемента в двумерной матрице и само значение элемента)
После считывания первых двух строк из файла, создаю указатель Matrix *values на массив структур и маллочу нужное кол-во памяти.
И есть заголовок функции, которую надо реализовать
В эту функцию передается сам массив структур, строка и столбец элемента, который надо получить. В нее НЕ передается ни кол-во элементов, ни кол-во строк и столбцов в исходной двумерной матрице.
Оперируя этими данным необходимо как-то вытащить элемент из одномерного массива. Организовать цикл не получается, потому что не знаю его границ. Думал, может можно как-то узнать размер памяти, которую выделяет malloc и от этого как-то отталкиваться.
PS. заголовок функции менять нельзя. Поля структуры можно
typedef struct Matrix { int row; int column; double val; } Matrix;
double get_elem(Matrix* matrix, int row, int col);
Ошибся, поля структуры тоже менять нельзя. Они прописаны в задании.
Решение задачи: «Определить, сколько памяти выделил malloc под массив»
textual
Листинг программы
double get_elem(Matrix* matrix, int row, int col);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д