const int Ints_Count = 100;
const int Chars_Count = 1000;
int *Integers = calloc (sizeof (int), Ints_Count);
char *Chars = calloc (sizeof (char), Chars_Count);
Про динамическую распределяемую память
необходимо создать несколько областей динамически распределяемой памяти(через функцию calloc) и потом извлекать из одной из них значение???
каким образом это лучше осуществить???
Цитата:
необходимо создать несколько областей динамически распределяемой памяти(через функцию calloc)
Использованием нескольких указателей.
Код:
Цитата:
извлекать из одной из них значение
Путём индексации массива либо по адресу указателя со смещением
Код:
int Mid_Int = *(Ints + Ints_Count/2); //Чтение элемента с номером Int_Count/2 по адресу со смещением
char Mid_Char = Chars [Chars_Count/2]; //Чтение элемента с номером Chars_Count/2 индексацией
char Mid_Char = Chars [Chars_Count/2]; //Чтение элемента с номером Chars_Count/2 индексацией
Если это не то - задавайте вопросы яснее
Код:
const int Ints_Count = 100;
const int Chars_Count = 1000;
int *Integers = (int *)calloc (Ints_Count, sizeof (int));
char *Chars = (char *)calloc (Chars_Count, sizeof (char));
const int Chars_Count = 1000;
int *Integers = (int *)calloc (Ints_Count, sizeof (int));
char *Chars = (char *)calloc (Chars_Count, sizeof (char));
Код:
const int Ints_Count = 100;
const int Chars_Count = 1000;
const int Chars_Count = 1000;
[/QUOTE]
а если одного типа (к примеру int)? А возможно создать массив указателей. Выделить на всь массив места calloc-ом. а потом в циклах по очереди заполнять?
Код:
const int rows= 100; // размер массива указателей
const int cols = 50;
int **pArray = (int **)calloc(rows, sizeof(int *));
if (!pArray)
{
// ошибка
}
for (int i = 0; i < rows; i++)
{
pArray = (int *)calloc(cols, sizeof(int)); // выделяем память под массив элементов int
if (!pArray)
{
// ошибка
}
for(int j = 0; j < cols; j++)
pArray[j] = 0xFF; // инициализируем
}
const int cols = 50;
int **pArray = (int **)calloc(rows, sizeof(int *));
if (!pArray)
{
// ошибка
}
for (int i = 0; i < rows; i++)
{
pArray = (int *)calloc(cols, sizeof(int)); // выделяем память под массив элементов int
if (!pArray)
{
// ошибка
}
for(int j = 0; j < cols; j++)
pArray[j] = 0xFF; // инициализируем
}
Объявлять именованные константы для размеров массива вместо того, чтобы просто писать цифры в функциях выделения памяти, нужно для того, чтобы при изменении этого размера (например, при отладке), не пришлось потом просматривать весь код в поисках этих цифр (например, в циклах чтения/записи массива)