Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
*krIsTiNa*
0 / 0 / 0
Регистрация: 19.01.2011
Сообщений: 46
#1

calloc, free. - C++

26.04.2011, 16:54. Просмотров 1399. Ответов 6
Метки нет (Все метки)

как правильно выделить память для двумерного массива а[n][m], при m=5,n=10 используя функцию calloc.
и как правильно ее освободить при помощи free.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.04.2011, 16:54     calloc, free.
Посмотрите здесь:

Работа с calloc и free в C++ - C++
Всем добрый день!! Уважаемые программисты посмотрите пожалуйста, корректно ли я использую эти функции для динамического выделения памяти,...

Использование calloc/realloc/free - C++
//calloc.cpp //Использование calloc #include <stdio.h> #include <stdlib.h> #include <iostream> #include <locale> using...

calloc - C++
Я, по сути, программист самоучка. Хорошим манерам кодинга не обучен, пишу то, что интересно и по силам мне. Нет,не беспокойтесь, с моими...

Malloc / calloc - C++
здравствуйте. Интересует такой вопрос : динамическая память. Когда мы выделяем память при помощи функции malloc то нас в универе учат...

calloc vs malloc - C++
Объясните,пжлста,чем отличается malloc oт calloc?

malloc vs. calloc - C++
Когда стоит использовать malloc , а когда calloc?

использование calloc - C++
функция calloc выделяет память только для 4 элементов DWORD sizeFile = GetFileSize(hFile, NULL); char* str; int n = sizeFile...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nameless One
Эксперт С++
5769 / 3418 / 255
Регистрация: 08.02.2010
Сообщений: 7,446
26.04.2011, 17:07     calloc, free. #2
Выделение памяти:
C
1
2
3
4
5
int i;
int** matrix;
matrix = calloc(5, sizeof(int*));
for(i = 0; i < 5; ++i)
  matrix[i] = calloc(10, sizeof(int));
Освобождение памяти:
C
1
2
3
for(i=0; i < 5; ++i)
  free(matrix[i]);
free(matrix);
Все без проверок.
easybudda
Эксперт CЭксперт С++
9465 / 5478 / 927
Регистрация: 25.07.2009
Сообщений: 10,500
26.04.2011, 17:09     calloc, free. #3
C
1
2
3
4
5
6
7
8
9
10
11
int ** arr, i;
if ( ( arr = (int**)calloc(n, sizeof(int*)) ) == NULL ){
  perror("calloc");
  return 1;
}
for ( i = 0; i < n; ++i ){
  if ( ( arr[i] = (int*)calloc(m, sizeof(int)) ) == NULL ){
    perror("calloc");
    return 1;
}
...
с проверками
Nameless One
26.04.2011, 17:11
  #4

Не по теме:

easybudda, ну дык я предупредил:

Цитата Сообщение от Nameless One Посмотреть сообщение
Все без проверок.

easybudda
26.04.2011, 17:12
  #5

Не по теме:

Цитата Сообщение от Nameless One Посмотреть сообщение
ну дык я предупредил
а это я потом заметил

*krIsTiNa*
0 / 0 / 0
Регистрация: 19.01.2011
Сообщений: 46
26.04.2011, 18:20  [ТС]     calloc, free. #6
Цитата Сообщение от Nameless One Посмотреть сообщение
free(matrix[i]);
но массив же двумерный..почему освобождается только matrix[i], а не matrix[i][j]?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.04.2011, 18:24     calloc, free.
Еще ссылки по теме:

Чем заменить calloc? - C++
Здравствуйте, подскажите, как можно заменить str2 = (char*)calloc(strlen(str1) + 1, 1); на простое выделение в С++? Пробовал так : ...

В чем разница malloc и calloc? - C++
подскажите пожалуйста,в чем разница malloc и calloc? эмалок выделение динамической памяти а сиалок выделение чистой памяти. в смысле...

Как string создает строку?(calloc, malloc) - C++
стринг создает строку с помощью calloc, malloc?

Как правильно создать двумерный массив указателей с использованием calloc? и ввод данных в него - C++
Как правильно создать двумерный массив указателей с использованием calloc и ввести в него данные?

Можно ли выделять память под объект класса с помощью функций calloc, malloc или realloc? - C++
Интересует данный вопрос. Можно ли и имеет ли вобще смысл например выделять память под объект класса с помощью функций calloc, malloc или...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
mimicria
return (true);
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,345
26.04.2011, 18:24     calloc, free. #7
Цитата Сообщение от *krIsTiNa* Посмотреть сообщение
но массив же двумерный..почему освобождается только matrix[i], а не matrix[i][j]?
Освобождается весь массив
C
1
2
  free(matrix[i]);
free(matrix)
Yandex
Объявления
26.04.2011, 18:24     calloc, free.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru