Составители:
Рубрика:
го память, а далее добавлять последующие элементы массива. Рассмотрим это на приме-
ре функции AddElement(), которой в качестве аргумента передается значение очередного
элемента массива:
int AddElement(int NewKey)
{
int *n; //Промежуточная переменная
if(massiv.mass==NULL) //Ввод первого элемента
{
massiv.mass=(int *)malloc(sizeof(int));
if(massiv.mass==NULL)
return -1;
massiv.maxElement=1;//NVINIT;
massiv.nElement=0;
}
else //Ввод последующих элементов
{
massiv.maxElement++;
n=(int *)realloc(massiv.mass,(massiv.maxElement)*sizeof(int));
if (n==NULL)
return -1;
massiv.mass=n;
}
massiv.mass[massiv.nElement]=NewKey;
return massiv.nElement++;
}
Функция возвращает текущее количество элементов в массиве. Доступ к каждому
элементу производится по его индексу.
Промежуточная переменная n используется в
качестве защиты. Если по какой-либо причине функция realloc() выдаст ошибку, ранее
введенный массив не будет потерян, так как память в этом случае выделяется для n, а не
для самого массива. Рассмотрим пример использования динамического массива. В про-
грамме последовательно создается массив, состоящий из 10 элементов, значение кото-
рых равно удвоенному произведению их порядковых номеров. Далее элементы массива
выводятся через пробел. В заголовочном файле function.h приведен исходный код струк-
туры и функции AddElement(). В результате выполнения программы на экран будут вы-
ведены значения:
0 2 4 6 8 10 12 14 16 18
#include<stdlib.h>
#include<stdio.h>
#include "function.h"
void main()
{
int i;
for (i=0;i<10;i++)
AddElement(i*2);
for (i=0;i<massiv.nElement;i++)
printf("%d ", massiv.mass[i]);
}
62
го память, а далее добавлять последующие элементы массива. Рассмотрим это на приме-
ре функции AddElement(), которой в качестве аргумента передается значение очередного
элемента массива:
int AddElement(int NewKey)
{
int *n; //Промежуточная переменная
if(massiv.mass==NULL) //Ввод первого элемента
{
massiv.mass=(int *)malloc(sizeof(int));
if(massiv.mass==NULL)
return -1;
massiv.maxElement=1;//NVINIT;
massiv.nElement=0;
}
else //Ввод последующих элементов
{
massiv.maxElement++;
n=(int *)realloc(massiv.mass,(massiv.maxElement)*sizeof(int));
if (n==NULL)
return -1;
massiv.mass=n;
}
massiv.mass[massiv.nElement]=NewKey;
return massiv.nElement++;
}
Функция возвращает текущее количество элементов в массиве. Доступ к каждому
элементу производится по его индексу. Промежуточная переменная n используется в
качестве защиты. Если по какой-либо причине функция realloc() выдаст ошибку, ранее
введенный массив не будет потерян, так как память в этом случае выделяется для n, а не
для самого массива. Рассмотрим пример использования динамического массива. В про-
грамме последовательно создается массив, состоящий из 10 элементов, значение кото-
рых равно удвоенному произведению их порядковых номеров. Далее элементы массива
выводятся через пробел. В заголовочном файле function.h приведен исходный код струк-
туры и функции AddElement(). В результате выполнения программы на экран будут вы-
ведены значения:
0 2 4 6 8 10 12 14 16 18
#include
#include
#include "function.h"
void main()
{
int i;
for (i=0;i<10;i++)
AddElement(i*2);
for (i=0;i Страницы
- « первая
- ‹ предыдущая
- …
- 60
- 61
- 62
- 63
- 64
- …
- следующая ›
- последняя »
