Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C (СИ) Модификация значения в строке вывода https://www.cyberforum.ru/ c-beginners/ thread171845.html
Добрый день! Я все по той же программе, имитирующей работу цифровых часов. В задании по разработке программы указано: "Обновление показаний часов должно происходить с периодичностью в одну секунду. При этом модифицироваться должны только те цифры строки вывода, значения которых изменились относительно предыдущего показания часов". Я правильно понимаю: нужно в самом коде программы изменить способ...
C (СИ) Программа для имитации работы часов
Доброго времени суток! Программа должна имитировать работу цифровых часов для отображения времени с точностью до одной секунды. При написании возникла проблема, а именно: необходимо (вдобавок к тому, что имеется) сделать возможным передачу данных (начального показания часов) через аргументы командной строки. Т.е. передаю программе любое время (11.12.31) и начинается отсчет. На данный момент...
C (СИ) Массив заданного пользователем размера #include<stdio.h> #include<locale.h> #include<windows.h> int main() { int k=10; scanf("%d",&k); int mass; https://www.cyberforum.ru/ c-beginners/ thread171554.html C (СИ) Ввести число, которое записывается в переменную n, и посчитать 2^n https://www.cyberforum.ru/ c-beginners/ thread171323.html
Здравствуйте! я - студент-заочник1-го курса Белорусского государственного университета информатики и радиоэлектроники. Не могу разобраться с одни моментов в задаче. Вот задача: Необходимо ввести число, которое записывается в переменную n, и посчитать 2^n #include<stdio.h> void main() {int n, st=2,i; printf("Vvedite stepen':"); scanf("%d", &n); for (i=2; i<=n; i++) st*=2;
C (СИ) Найти средне арифметическое значений функции больших заданного числа
Собственно написал данную программу, которая должна выводит таблицу подставляя в X значения от минус 3 до 3 с шагом 0.1 в формулу y=1.7*x-6.3*x+2.7 и выполнить два задание, найти средне арифметическое таких значений функции, которые больше числа М. и Сумму таких значений функции, которые больше числа M #pragma argsused #include <stdio.h> #include <math.h> #define T 0.1 #define L -3 #define...
C (СИ) Сумма элементов массива Такое задание: Найти сумму элементов массива, которые предшествуют первой по порядку компоненте, знач. кот. не прин. . Если такая комп-та отстутствует - в кач-ве суммы взять сумму всех элементов массива. Вот, что получилось... # include <stdio.h> int main() {int n; scanf("%d", &n); https://www.cyberforum.ru/ c-beginners/ thread171132.html
C (СИ) Умножение треугольной матрица на вектор (Си)) https://www.cyberforum.ru/ c-beginners/ thread170899.html
Добрый день всем! Помогите разобраться с задачкой Условие: Умножить треугольную матрицу A на вектор B Треугольная матрица А: 00 01 02 03 04 05 06 10 11 12 13 14 15 0 20 21 22 23 24 0 0 30 31 32 33 0 0 0 40 41 42 0 0 0 0 50 51 0 0 0 0 0
В восьмеричной 123-102030 C (СИ)
Из целого числа получить новое путем вставки после каждой цифры 0 (231457 -> 2030405070). # include <stdio.h> # include <math.h> # include <conio.h> void main() {unsigned long a,b,c,d=0x7,k,n=0; printf(" Введите число\n"); scanf("%lo",&a); while (a) {
C (СИ) Segmentation fault при вызове malloc https://www.cyberforum.ru/ c-beginners/ thread170583.html
Щас создавал модуль на Си для работы со списком, думал минутное дело, за 40 мин накатал и уже почти час не могу понять почему выдает Segmentation fault при вызове malloc в функции Create, объясните пожалуйста, вот фрагменты кода: typedef int T; struct Item { struct Item* prev; struct Item* next; T data; };
C (СИ) Выяснить, имеются ли в массиве два идущих подряд отрицательных элемента https://www.cyberforum.ru/ c-beginners/ thread170579.html
Дана последовательность целых чисел. Выяснить, имеются ли в данном массиве два идущих подрят отрицательных элемента. Подсчитать количество таких пар.
Для файл с текстом input.txt построить алфавитно частичный словарь в файле output.txt C (СИ)
Помогите разобраться, не могу понять как сделать, чтобы алфавит размещался в росте (a, b, c, d ,...) условие задачи. Алфавитно частичный словарь. Задан входной файл с текстом input.txt построить для него алфавитно частичный словарь в файле output.txt. #include<conio.h> #include<string.h>
C (СИ) Изменить код, чтобы он выводил результаты через потоковый ввод\вывод #include <stdio.h> #include <ctype.h> void main() { char ch = 0; while((ch = getc(stdin)) != EOF) { printf("%c | %.4x | %.4o\n", toupper(ch), (char)ch, (char)ch); fflush(stdin); } https://www.cyberforum.ru/ c-beginners/ thread170484.html
0 / 0 / 0
Регистрация: 27.10.2009
Сообщений: 26
0

Распределение памяти для выделения и освобождения блоков памяти внутри запрошенного пула - C (СИ) - Ответ 1001416

03.10.2010, 17:57. Показов 2153. Ответов 14
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
В программе малые"дыры" избегают,что нужно сделать что бы малые "дыры" не избегались....

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
# include <stdio.h>
# include <stdlib.h>
# include <math.h>
short int  ident[256];
typedef char block[1024];
block* megablock;
 
void givemem()
{
    int x;
    megablock=(block*)malloc(1024);
    for (x=0;x<=127;x++) ident[x]=0x00;
    printf("Adress 0=%p\n",megablock);
}
 
int curposit(short int mask,short int y)
{
    short int x;
    for (x=0;(x<=7)&&((mask>>=1)!=0);x++);
    return x+y*8;
}
 
void mark(int devi,int len)
{
    short int x,y;
    int z;
    y=(devi+len-1)/8;
    for(z=devi;z<=(devi+len-1);z++) {x=1;ident[z/8]=ident[z/8]|(x<<(z%8));}
    x=1;
    ident[y+128]=ident[y+128]|(short int)(x<<((z-1)%8));
}
 
char *give(int size)
{
int blc=((size-1)/1024)+1,rblock,freeblock=0,oldpos=-1,oldrblock=1025;
printf("\nbnc=%d\n",blc);
    short int curblock;
    for (int x=0;x<=127;x++){
    for (short int mask=1;mask<=128;mask<<=1)
    {
    curblock=ident[x]&mask;
    if (curblock==0) freeblock=freeblock+1; 
    else
    {
        rblock=freeblock-blc;
        if (rblock==0)
        {
        printf("\n1)Videlil%d",curposit(mask,x)-blc);
        mark(curposit(mask,x)-blc,blc);
        return (char*)(megablock+curposit(mask,x)-blc);
        }
        if (rblock>0)
        {
        if (oldrblock>rblock) 
        {
            oldrblock=rblock;
            oldpos=curposit(mask,x)-freeblock;
//          printf("test%d  %d",oldrblock,oldpos);
        }
        }
        freeblock=0;
    }
    }}
    rblock=freeblock-blc;
    if (rblock==0)
        {
        printf("\n3)Videlil%d",1024-blc);
        mark(1024-blc,blc);
        return (char*)(megablock+1024-blc);
        }
        if (rblock>0)
        {
        if (oldrblock>rblock) 
        {
            oldpos=1024-freeblock;
            printf("\n4)oldpos=%d",oldpos);
            mark(oldpos,blc);
            return (char*)(megablock+oldpos);
        }
        }
        else if (oldpos>=0) return (char*)(megablock+oldpos);
    return NULL;
}
 
void freem(void* thism)
{
    int raz=(int)((char*)thism-(char*)megablock),x;
//    printf("\nraz=%d",raz/1024);
    for(x=raz/1024;((ident[128+x/8]&(1<<(x%8)))==0)&&(x<=1023);x++){ident[x/8]=ident[x/8]&~(1<<(x%8));}
//    printf("xxx=%d\n",x);
    ident[x/8]=ident[x/8]&~(1<<(x%8));
    ident[x/8+128]=ident[x/8+128]&~(1<<(x%8));
}
 
int main() 
{
    int x;
    givemem();
    char*vvv=(char*)give(102);
    //char*vvv1=(char*)give(1024*4);
    //char*vvv2=(char*)give(1024*5);
    for(x=0; x<=255;x++)printf("x=%d  vol=%d\n",x,ident[x]);
    //printf("\nOtvet=%p",vvv);
    //freem(vvv1);
    freem(vvv);
    //char*vvv3=(char*)give(1024*5);
    //freem(vvv2);
    for(x=0; x<=255;x++)printf("x=%d  vol=%d\n",x,ident[x]);
    //printf("\nOtvet=%p",vvv2);
    //freem(vvv);
    free(megablock);
    printf("\nThe End\n");
    return 0;
}

Help....=)

Вернуться к обсуждению:
Распределение памяти для выделения и освобождения блоков памяти внутри запрошенного пула C (СИ)
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.10.2010, 17:57
Готовые ответы и решения:

Malloc ошибка освобождения памяти
ЧЯДНТ? Косяк такой: heap corruption detected before normal block (№0) at 0x... CRT detected...

Ошибка освобождения динамической памяти
Столкнулся с проблемой ошибка при очистке динамической памяти помогите разобраться что я сделал не...

Динамическое распределение памяти для символьной строки
Объясните, пожалуйста, почему при динамическом распределнии памяти под символьный массив у меня все...

Какие переменные типа CARS можно использовать для выделения динамической памяти?
Всем привет! Помогите плиз ответить на вопросы!( Вижу, что тут обсуждают в основном программы, но...

14
03.10.2010, 17:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.10.2010, 17:57
Помогаю со студенческими работами здесь

Реализовать фунцию для выделения блока свободной динамической памяти (кучи) заданного размера
4) Управления кучей. Реализовать фунцию для выделения блока свободной динамической памяти (кучи)...

Ошибка при переходе в функцию освобождения памяти из под списка
При переходе в функцию Clear вылетает с сообщением что куча была повреждена. Какая строка ее...

Почему после освобождения памяти получается записать туда значение
Здравствуйте! Вот код: #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; int main() { int * p...

Написать функции для работы с массивом - выделения/освобождения памяти, консольного ввода/вывода
Напишите функции: 1) выделяющую память для массива данных типа float, 2) заполняющую ячейки...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru