рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Руководство программиста

Работа сделанна в 2000 году

Руководство программиста - Курсовая Работа, раздел Связь, - 2000 год - Динамическое распределение памяти Руководство Программиста. В Этом Разделе Будут Приведены Листинги Программ Ск...

Руководство программиста. В этом разделе будут приведены листинги программ скомментариями.

Задание 2 include lt stdio.h gt include lt alloc.h gt include lt conio.h gt int main void char x, y, z Объявлениепеременных x char malloc sizeof char Выделениединамической памяти для x y char malloc sizeof char y z char malloc sizeof char z clrscr Очистка экрана printf Adress of x p n, x Вывод на экран адреса началаблока для x printf Adress of y p n, y y printf Adress of z p n, z z free z Освобождение блока выделенного для z free y y free x x Длятого чтобы убедиться что для каждого из однобайтовых данных в куче выделено 16 байт т.е. 1 параграф нужносравнить три адреса, которые поя- вяться на экран в рез-те действия этойпрограммы.

Если числа в этих адресах стоящие до двоеточия увеличиваютя отпервого к последнему на еденичку, то это означает что на каждый блок выделен одинпараграф в куче 16 байт. Для получения этих адресов в отладчикедостаточно нажать Alt F4 в режиме отладчика затем в появившемся запросе ввести x появится меню, вверху которого и будет нужный адрес, аналогичнодля y, z. return 0 Задание 6 include lt stdio.h gt include lt conio.h gt include lt alloc.h gt include lt process.h gt include lt stdlib.h gt N var- число элементов массива define N var 20 main clrscr Инициализациягенератора случ. чиселrandomize int mas Выделениепамяти под массив if ! mas int malloc sizeof int N var printf Не достаточно памяти для выделения массива n exit 1 Заполнениемассива случ. числами в диапазоне от -3 до 7 с одновременным выводомна экран for int i 0 i lt N var i mas i random 11 -3 printf N i i n, i,mas i Освобождениепамяти из под масси ва free mas return 0 Задание 8 include lt stdio.h gt include lt conio.h gt include lt alloc.h gt include lt process.h gt СтруктураMatr1, которая содержит размеры матрицы, а также одномерный массивэлементов матрицы и функцию для задания размеров матрицыstruct Matr1 int m, n int ptr void SetRazm int mm, int nn m mm n nn СтруктураMatr1, которая содержит размеры матрицы, а также двумерный массивэлементов матрицы и функцию для задания размеров матрицы struct Matr2 int m, n int ptr void SetRazm int mm, int nn m mm n nn int DinMatr1 Matr1 matr функция выделения памяти для Matr1intDinMatr2 Matr2 matr функция выделения памяти для Matr2 voidFreeMatr1 Matr1 matr функция освобождения памяти из под Matr1 voidFreeMatr2 Matr2 matr функция освобождения памяти из под Matr2 main clrscr Matr1 M1 Созданиеэкземпляра Matr1 Matr2 M2 Создание экземпляра Matr2 M1.SetRazm 2,2 Задание размеров Matr1 M2.SetRazm 2,2 Matr2 if !DinMatr1 amp M1 Выделениепамяти для Matr1 printf Не хватает памяти подM1 n exit 1 if !DinMatr2 amp M2 Matr2 printf Не хватает памяти подM2 n exit 1 FreeMatr1 amp M1 Освобождение памяти из под Matr1 FreeMatr2 amp M2 Matr2 return 0 int DinMatr1 Matr1 matr if ! matr- gt ptr int malloc sizeof int matr- gt m matr- gt n return 0 return 1 int DinMatr2 Matr2 matr if ! matr- gt ptr int malloc sizeof int matr- gt m return 0 for int i 0 i lt matr- gt m i if ! matr- gt ptr i int malloc sizeof int matr- gt n return 0 return 1 void FreeMatr1 Matr1 matr if matr- gt ptr free matr- gt ptr void FreeMatr2 Matr2 matr for int i 0 i lt matr- gt m i if matr- gt ptr i free matr- gt ptr i if matr- gt ptr free matr- gt ptr Задание 10 include lt stdio.h gt include lt conio.h gt include lt alloc.h gt include lt process.h gt main clrscr char mas int c, m 0,n 0 mas char malloc sizeof char Выделениепамяти под первое число mas 0 char malloc sizeof char Выделение памяти под первую позицию цифры вчисле printf Intput n while c getch - 0 Покане ввели 0 if c 13 При нажатии Enter выделениепамяти под новое число mas m n 0 m if ! mas char realloc mas, sizeof char m 1 printf Не хватает памяти n exit 1 n 0 putch 10 Переводкарретки и перевод строки putch 13 при выводе на экран if c lt 0 c gt 9 continue Проверкана ввод только цифр if !n amp amp m Выделение памяти под первуюпозицию в следующемчисле if ! mas m char malloc sizeof char printf Не хватает памяти n exit 1 mas m n c Занесение цифры на нужную позицию n в число if n Выделение памятипод следующую позицию в числе if ! mas m char realloc mas m, sizeof char n 1 printf Не хватает памяти n exit 1 putch c Вывод цифры на экран printf Output n for int i 0 i lt m i printf s n, mas i Вывод всех чисел на экран for i 0 i lt m i if mas i free mas i Освобождение памяти if mas free mas return 0 Задание 12 include lt stdio.h gt include lt conio.h gt include lt alloc.h gt include lt process.h gt struct Matr int m, n double ptr void SetRazm int mm, int nn m mm n nn int DinMatr Matr matr функция выделения памяти для MatrvoidFreeMatr Matr matr функция освобождения памяти из подMatrvoid Setelem Matr matr, doubleM 3 3 функция заполнения матрицы элементамиdoubleOctNorm Matr matr функция вычисления нормы матрицыmain clrscr double M 3 3 1,2,3 , 4,5,6 , 7,8,9 Matr M M.SetRazm 3,3 if !DinMatr amp M printf Не хватает памяти дляматрицы n exit 1 Setelem amp M,M printf f n ,OctNorm amp M FreeMatr amp M return 0 int DinMatr Matr matr if ! matr- gt ptr double malloc sizeof double matr- gt m return 0 for int i 0 i lt matr- gt m i if ! matr- gt ptr i double malloc sizeof double matr- gt n return 0 return 1 void FreeMatr Matr matr for int i 0 i lt matr- gt m i if matr- gt ptr i free matr- gt ptr i if matr- gt ptr free matr- gt ptr void Setelem Matr matr, doubleM 3 3 for int i 0 i lt matr- gt m i for int j 0 j lt matr- gt n j matr- gt ptr i j M i j double OctNorm Matr matr double max 0 double a 0 for int i 0 i lt matr- gt m i max matr- gt ptr i 0 for int j 0 j lt matr- gt n j for i 0 i lt matr- gt m i a matr- gt ptr i j if a gt max max a a 0 return max Задание 14 include lt stdio.h gt include lt alloc.h gt include lt conio.h gt include lt process.h gt void main void long N 1 char A A char calloc N,1024 Выделение в кучеместа do free A Освобождениемассива A char calloc N,1024 Выделение памяти под больший массив N Увеличениесчетчика while A! NULL Продолжатьпока память выделяется printf nMaximum size of heap N iKb ,N Вывод результатов Задание 16 include lt stdio.h gt include lt conio.h gt include lt alloc.h gt include lt process.h gt include lt stdlib.h gt struct MATR int n, m double ptr int read char name 80 FILE pf int i 0,j 0 char c char num 10 int pos 0,flag 1 m 0 n 0 if ! pf fopen name, rt return 0 ptr double malloc sizeof double ptr 0 double malloc sizeof double while c fgetc pf ! EOF if c gt 0 amp amp c lt 9 c . num pos c pos flag 1 if c amp amp flag flag 0 num pos 0 ptr i j atof num j ptr i double realloc ptr i, sizeof double j 1 pos 0 if c n amp amp flag flag 0 num pos 0 ptr i j atof num i ptr double realloc ptr, sizeof double i 1 ptr i double malloc sizeof double j 0 pos 0 if i gt n n i if j gt m m j n fclose pf return 1 void free for int i 0 i lt n i free ptr i free ptr void print for int i 0 i lt n i for int j 0 j lt m j printf 8.3f, ptr i j printf n int write char name 80 FILE pf if ! pf fopen name, wt return0 for int i 0 i lt n i for int j 0 j lt m j fprintf pf, f ,ptr i j fprintf pf, n fclose pf void main clrscr MATR A A.read C mas.txt A.print A.write C out.txt A.free

– Конец работы –

Эта тема принадлежит разделу:

Динамическое распределение памяти

Если числа в этих адресах стоящие до двоеточия увеличиваютя от первого к последнему на еденичку,то это означает что на каждый блоквыделен один… Задание 8Программа хранит матрицы ввиде двух структур Struct Matr1 int m, n… Задание 12Задание 14Задание 16Программа выполняет считываниематрицы произвольных размеров из файла разделителями…

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Руководство программиста

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Эта работа не имеет других тем.

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги