Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

выделение памяти

51K
08 марта 2011 года
Scoler
26 / / 08.01.2011
Нужно реализовать с выделение памяти
Код:
#include "stdafx.h"
#include <conio.h>
#include <stdio.h>
#include <iostream>
#include <math.h>
#define size 15
using namespace std;
void _tmain()
{
        setlocale(LC_CTYPE,"Russian");
        int mas[size], max, min; // массив, максимум, минимум
        int i;
        cout<<"Введите "<< size <<" чисел \n";
        for (i=0; i<size; i++)
                cin >> mas;
        max=mas[0];
        min=mas[0];
        for (i=1; i<size; i++) {
                if (mas > max)
                        max = mas;
                if (mas < min)
                        min = mas;
        }
        cout << "массив до изменения:\n";
        for (i=0; i<size; i++)
                cout << mas << " ";
        cout << endl;
        for (i=0; i<size; i++)
                if (mas == min)
                        mas = max; // заменяем все минимальные элементы максимальными
        cout << "массив после изменения:\n";
        for (i=0; i<size; i++)
                cout << mas << " ";
        cout << endl;
        cout << "Press any key\n";
        _getch();
}
29K
09 марта 2011 года
Енот_в_Засаде
224 / / 09.11.2010
если я правильно понял, то вам нужно просто массив описывать так:
 
Код:
int *mas = new int[size]

или же юзать функцию malloc:
 
Код:
int *mas =(int*)malloc(size*sizeof(int))
51K
22 марта 2011 года
Scoler
26 / / 08.01.2011
ошибок при компиляции нету, но появляется ошибка "un-Time Check Failure #3 - The variable 'i' is being used without being defined."
Что еще не дописал?
Цитата:
#include "stdafx.h"
#include <conio.h>
#include <stdio.h>
#include <iostream>
#include <math.h>
#define size 4
using namespace std;
void _tmain()
{
setlocale(LC_CTYPE,"Russian");
int mas[size], max, min, i, *ua; // массив, максимум, минимум
ua=new int;
cout<<"Введите "<< size <<" чисел \n";
for (i=0; i<size; i++)
cin >> mas;
max=mas[0];
min=mas[0];
for (i=1; i<size; i++) {
if (mas > max)
max = mas;
if (mas < min)
min = mas;
}
cout << "массив до изменения:\n";
for (i=0; i<size; i++)
cout << mas << " ";
cout << endl;
for (i=0; i<size; i++)
if (mas == min)
mas = max; // заменяем все минимальные элементы максимальными
cout << "массив после изменения:\n";
for (i=0; i<size; i++)
cout << mas << " ";
cout << endl;
cout << "Press any key\n";
delete ua;
_getch();
}

29K
23 марта 2011 года
Енот_в_Засаде
224 / / 09.11.2010
мне не понятна эта строка: ua=new int;
Во первых я не понял зачем это, а во вторых, нельзя создать массив с размером i, так как эта переменная никаким значением не инициализирована.
29K
23 марта 2011 года
Енот_в_Засаде
224 / / 09.11.2010
1. массив ua вы нигде не используете, удалите эту строку вообще
2. память под массив выделяется так: int *mas = new int[size];
3. освобождая память нужно будет удалять массив mas[].

вот что примерно должно получиться:
Код:
#include <conio.h>
#include <stdio.h>
#include <iostream>
#include <math.h>
#define size 4
using namespace std;
void main()
{
setlocale(LC_CTYPE,"Russian");
int *mas = new int[size];
int max, min, i; // массив, максимум, минимум
cout<<"Введите "<< size <<" чисел \n";
for (i=0; i<size; i++)
cin >> mas;
max=mas[0];
min=mas[0];
for (i=1; i<size; i++) {
if (mas > max)
max = mas;
if (mas < min)
min = mas;
}
cout << "массив до изменения:\n";
for (i=0; i<size; i++)
cout << mas << " ";
cout << endl;
for (i=0; i<size; i++)
if (mas == min)
mas = max; // заменяем все минимальные элементы максимальными
cout << "массив после изменения:\n";
for (i=0; i<size; i++)
cout << mas << " ";
cout << endl;
cout << "Press any key\n";
delete[] mas;
_getch();
}
392
23 марта 2011 года
cronya
421 / / 03.01.2009
странный вы человек:)
 
Код:
int mas[size], max, min, i-чему равно, вроде как размер массива по вашим запися, может быть все таки size, *ua;

[COLOR="red"]ua=new int[i];[/COLOR]//видимо опечатка
[COLOR="seagreen"]ua=new int[size];[/COLOR]//так правильно
Работа с памятью элементарна:

 
Код:
unsigned size=5;//размер массива
int *massive=new int[size];//выделение памяти на 5 э-тов
for(int idx=0;idx<size;idx++)massive[idx]=0;//пример обращению к эле-у массива
delete []massive;//освобождения памяти
392
23 марта 2011 года
cronya
421 / / 03.01.2009

вот что примерно должно получиться:
Код:
#include <conio.h>
#include <stdio.h>
#include <iostream>
#include <math.h>
#define size 4
using namespace std;
void main()
{
setlocale(LC_CTYPE,"Russian");
int *mas = new int[size];
int max, min, i; // массив, максимум, минимум
cout<<"Введите "<< size <<" чисел \n";
for (i=0; i<size; i++)
cin >> mas;
max=mas[0];
min=mas[0];
for (i=1; i<size; i++) {
if (mas > max)
max = mas;
if (mas < min)
min = mas;
}
cout << "массив до изменения:\n";
for (i=0; i<size; i++)
cout << mas << " ";
cout << endl;
for (i=0; i<size; i++)
if (mas == min)
mas = max; // заменяем все минимальные элементы максимальными
cout << "массив после изменения:\n";
for (i=0; i<size; i++)
cout << mas << " ";
cout << endl;
cout << "Press any key\n";
delete[] mas;
_getch();
}


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

29K
24 марта 2011 года
Енот_в_Засаде
224 / / 09.11.2010
Цитата:
Не надо писать за них все, пусть вырабатывают свой стиль написания, вы им делаете медвежью услугу.


так я и не писал ничего:) весь код его, я просто кое что переставил)

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог