Динамическое размещение данных


При самостоятельном желании понять тему " Динамическое размещение данных " вам поможет наш ресурс. Для вас наши специалисты подготовили материал, изучив который вы будете разбираться в ней уровне профессионала. А если у вас останутся вопросы, то задать их вы сможете прямо на сайте написав в чат онлайн-консультанта.

оформить заявку

Слишком сложно? Тогда запросите консультацию специалиста!

Наша компания занимается тем, что помогает студентам выполнять различные учебные работы на заказ. Вы можете ознакомиться с перечнем выполняемых работ, а так же с их стоимостью на странице с ценами.

ознакомиться с условиями

Если в задаче заранее неизвестно количество объектов и объект описан указателем, удобно использовать динамическое размещение данных.

Прототипы функций работы с динамической памятью находятся в библиотеке alloc.h, рассмотрим основные из них:

void *calloc(unsigned n, unsigned m); - возвращает указатель на начало области памяти для размещения n элементов по m байт каждый, при неудачном завершении возвращает значение NULL;

void *malloc(unsigned n); - возвращает указатель на блок памяти длиной n байт, при неудачном завершении возвращает значение NULL;

void *realloc(void *bf, unsigned n); - изменяет размер ранее выделенной памяти с адресом начала bf на n байт;

void free(void *bf); - освобождает ранее выделенный блок памяти с адресом bf;

coreleft(void); - возвращает значение объема неиспользованной памяти (тип возвра­ща­емого результата unsigned – для моделей памяти tiny, small, medium; unsigned long – для других моделей памяти).

Пример выделения памяти для массива действительных чисел размером n:

float *x; // Указатель объекта типа float – x[0]

int n; // Количество элементов массива

. . .

x=(float*)calloc(n,sizeof(float)); // Захват памяти для n элементов

. . .

free(x); // Освобождение памяти

Пример работы со строковыми данными

Проверить, является ли введенная строка палиндромом (справа налево читается так же, как и слева направо).

#include <stdio.h>

#include <string.h>

#include <conio.h>

#include <calloc.h>

void main(void)

{

char *s; // Объявление строки указателем

int i, k;

clrscr();

puts(" Vvedi stroky"); gets(s);

k=strlen(s);

s=(char*)calloc(k,sizeof(char)); // Захват памяти для строки длиной k

for (i=0; i<(int)(k/2); i++)

if(s[i]!=s[k-i-1])

{

puts(" a NO!!");

getch();

free(s); // Освобождение памяти

return;

}

puts(" a YES - Pаlindrom!");

getch();

free(s); // Освобождение памяти

}

Пример динамического размещения одномерного массива

Ввести массив действительных чисел размером n и вывести на экран.

#include<stdio.h>

#include<stdlib.h>

#include<conio.h>

#include<alloc.h>

void main()

{

int i,n;

float *a;

puts(“ Введите размер массива n:”);

scanf(“%d”,&n);

printf(“ Свободная память -%d”,coreleft());

a=(float*)calloc(n,sizeof(float)); // Захват памяти

printf(“ Введите элементы массива a: ”);

for(i=0; i<n; i++)

scanf(“%f”,(a+i)); // scanf(“%f”,&a[i]);

printf(“ Массив a ”);

for(i=0; i<n; i++)

printf(“ %6.3f “, a[i]);

printf(“ Память после захвата -%d”,coreleft());

free(a); // Освобождение памяти

getch();

}


Хм, так же просматривали

Заказ

ФОРМА ЗАКАЗА

Бесплатная консультация

Наша компания занимается написанием студенческих работ. Мы выполняем: дипломные, курсовые, контрольные, задачи, рефераты, диссертации, отчеты по практике, решаем тесты и задачи, и многие другие виды заданий. Чтобы узнать стоимость, а так же условия выполнения работы заполните заявку на этой странице. Как только менеджер увидит ваше сообщение, он сразу же свяжется с вами.

Этапность

СОПРОВОЖДЕНИЕ КЛИЕНТА

Получить работу можно всего за 4 шага

01
Оставляете запрос

Оформляете заказ работы, заполняя форму на сайте.

02
Узнаете стоимость

Менеджер оценивает сложность. Узнаете точную цену.

03
Работа пишется

Оплачиваете и автор приступает к выполнению задания.

04
Забираете заказ

Получаете работу в электронном виде на вашу почту.

Услуги

НАШ СЕРВИС

Что мы еще делаем?

icon
Рефераты

от 580 рублей

ПОДРОБНЕЕ
icon
Диссертации

от 14800 рублей

ПОДРОБНЕЕ
icon
Практические работы

от 1300 рублей

ПОДРОБНЕЕ
icon
Сочинения

от 280 рублей

ПОДРОБНЕЕ
icon
Дневник по практике

от 580 рублей

ПОДРОБНЕЕ
icon
Написание текста

от 80 рублей

ПОДРОБНЕЕ