Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Джигмэн
9 / 9 / 1
Регистрация: 15.12.2012
Сообщений: 64
#1

Изменить способ выделения памяти для массива (вместо new использовать malloc) - C++

12.02.2013, 10:55. Просмотров 561. Ответов 1
Метки нет (Все метки)

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
#include "stdafx.h"
#include "stdlib.h"
 
struct str_Team{
        char Komanda[77];
        int Ochki;
        int Gold;
        int Silver;
        int Bronze;
        };
 
void Error(){
    printf("\nINPUT ERROR!\n\n");
    exit(0);
}
 
void FOchki(str_Team *Team, int N){
    for(int i=0; i<N; i++)
        Team[i].Ochki = Team[i].Gold*5 + Team[i].Silver*2 + Team[i].Bronze*1;
}
 
void SSort(str_Team *T, const int N){
    str_Team *B = new str_Team[N];
  for(int i=0; i<N; i++){
      int c=0;
        for(int j = 0; j<i; j++)
        {
            if (T[j].Ochki <= T[i].Ochki) c++;
        }
        for(int j=i+1; j<N; j++)
        {
            if (T[j].Ochki < T[i].Ochki) c++;
        }
        B[c] = T[i];
}
  for(int i=0; i<N; i++)
    {
        T[i]=B[i];
    }
    delete B;
 
}
 
 
void main(){
    const int N =3;
    str_Team Team[N];
 
    for(int i=0; i<N; i++){
        printf("Vvedi nazvanie komandi: ");
            scanf("%s",&Team[i].Komanda);
        printf("Vvedi kol-vo zolota: ");
            if((scanf("%d",&Team[i].Gold)==0)||(Team[i].Gold<0)) Error();
        printf("Vvedi kol-vo serebra: ");
            if((scanf("%d",&Team[i].Silver)==0)||(Team[i].Silver<0)) Error();
        printf("Vvedi kol-vo bronzi: ");
            if((scanf("%d",&Team[i].Bronze)==0)||(Team[i].Bronze<0)) Error();
        printf("\n-----------------------------------------------\n");
    }
 
    FOchki(Team, N);
    printf("\n\nBalli:\n");
        for(int i=0; i<N; i++) printf("%s:\t%d\n",Team[i].Komanda,Team[i].Ochki);
 
    SSort(Team, N);
    printf ("\nSpisok po ubivaniu:\n");
    for ( int i=N-1; i>=0; i--)
    {
        printf("%d: %s\n",(i+1),Team[i].Komanda);
    }
    
    
}
а именно - эта часть:
C++
1
2
void SSort(str_Team *T, const int N){
    str_Team *B = new str_Team[N];
как устроить выделение через маллок? Заранее спасибо!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.02.2013, 10:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Изменить способ выделения памяти для массива (вместо new использовать malloc) (C++):

Ошибка выделения памяти для двумерного массива - C++
void create(int **Matrix, int n, int m) { Matrix=new int*; for(int i=0; i&lt;n; i++) Matrix = new int; for(int i=0; i&lt;n;...

Передача массива указателей в функцию для выделения памяти - C++
Есть функция, в которую передаются массивы указателей, для выделения памяти. void str_malloc(char** &amp;strBol,char** &amp;strUvr,char**...

Средства для уменьшения выделения памяти - C++
Светофор, установленный на повороте в торговый центр «МЕГА» с Новомосковского тракта, работает в таком режиме, что за одну минуту повернуть...

Какие существуют способы выделения памяти для переменных? - C++
А какие существуют способы выделять память для переменных?

Допустимо ли вместо индекса массива использовать i-ый элемент другого массива? - C++
Другими словами, допустимо ли использовать структуру такого типа: int Amas,mas1,mas2; ... if(Amas]]&gt;n) { ... }

Как написать программу для динамического выделения памяти с использованием new - C++
Надо написать прогу, которая выделяет память для структур размером в 2048 байт и обрабатывает ситуацию в случае ее нехватки. Я понятия не...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Croessmah
Эксперт CЭксперт С++
13226 / 7498 / 845
Регистрация: 27.09.2012
Сообщений: 18,416
Записей в блоге: 3
Завершенные тесты: 1
12.02.2013, 11:00 #2
как-то так:
C++
1
str_Team *B = (str_Team*)malloc(N*sizeof(str_Team));
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.02.2013, 11:00
Привет! Вот еще темы с ответами:

Написать инструкцию выделения памяти для одного экземпляра заданного класса (динамическая память) - C++
Дан класс и указатель: class X{ int a; public: X(int _a) {a = _a;} }; X *p; Напишите инструкцию выделения памяти для...

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

Использовать new вместо обьявления массива из трех структур - C++
//хелп, использовать new вместо обьявления массива из трех структур, намекните куда мне думать... #include &quot;stdafx.h&quot; #include...

Выделение памяти malloc - C++
не работает пример из лекции , там пример на доске такой написан - #include &lt;stdlib.h&gt; int main() { int...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru