ВУЗ:
Составители:
Рубрика:
vect->m_size=0;
DBG(("Successful call to 'free_vect': vect=%p\n",vect));
}
/* Получение указателя на элемент вектора */
VECT_BASETYPE* at_vect(unsigned int x, struct t_vect *vect) {
/* проверка корректности аргументов */
if (x >= vect->m_size) {
DBG(("Error calling 'at_vect': x=%u, vect-
>m_size=%u\n",x, vect->m_size));
return NULL;
};
DBG(("Successful call to 'at_vect': x=%u, vect=%p\n",x,vect));
return &vect->m_ptr[ x ];
}
struct t_matr {
MATR_BASETYPE *m_ptr;
unsigned int m_xsize, m_ysize;
};
/* Создание новой матрицы.
Входные данные: x,y --- размеры матрицы
Выходные данные: matr --- матрица
Примечание: начальное значение всех элементов равно 0; если память
под матрицу уже выделена, она не освобождается */
int alloc_matr(unsigned int x, unsigned int y, struct t_matr *matr) {
/* проверка корректности входных данных */
if ((x==0) || (y==0)) {
DBG(("Error calling 'alloc_matr': x=%u, y=%u\n",x,y));
return ERR_PARAM;
};
/* выделение памяти */
matr->m_ptr = calloc(sizeof(MATR_BASETYPE), x*y);
matr->m_xsize = x;
matr->m_ysize = y;
/* проверка */
if ( matr->m_ptr == NULL ) {
DBG(("Error allocating memory in 'alloc_matr': x=%u,
y=%u\n",x,y));
return ERR_MEMORY;
};
DBG(("Successful call to 'alloc_matr': x=%u, y=%u,
matr=%p\n",x,y,matr));
return ERR_OK;
}
/* Удаление старой матрицы */
void free_matr(struct t_matr *matr) {
if (matr->m_ptr == NULL) {
DBG(("Trying to free memory more than once in
'free_matr': matr=%p\n",
matr));
return;
};
free(matr->m_ptr);
matr->m_ptr=NULL;
Страницы
- « первая
- ‹ предыдущая
- …
- 32
- 33
- 34
- 35
- 36
- …
- следующая ›
- последняя »