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

Не добавляются элементы в динамический массив - C++

Восстановить пароль Регистрация
 
PinkPink
9 / 9 / 2
Регистрация: 10.05.2012
Сообщений: 279
07.10.2012, 20:59     Не добавляются элементы в динамический массив #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
#include "processor.h"
#include <fstream>
#include <sstream>
void loader(string file)
{
    ifstream f(file);//открываем файл-программу
    string str,per;//строка файла и считанное число
    string com[5];//сделать динамич массив для команд
    processor VM;
    VM.count=0;
    short aa;
    int flag=1;//по умолчанию плюс - true это плюс
    double drob=0;
    int i=1, cel, por;
    while (!f.eof())
    {
        int *dinam = new int[64000];
        getline(f,str);
        for(int j=0;j<str.size();j++)
        {
            aa=str[j]-'0';
            VM.memory[VM.count++]=aa;
            dinam[j]=j;
        }
        //переписываем весь входной файл в память
    }
}
Простейший пример с массивом dinam, но элементы не добавляются!
после трёх добавлений в массиве по прежнему мусор
Помогите пожалуйста!! Вся работа встала

Добавлено через 10 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
 
int main()
{
    setlocale(0,"Russian");
    int *buka = new int[64000];
        for(int j=0;j<7;j++)
        {
            buka[j]=j;
        }
    system("pause");
    return 0;
}
И так не пашет =(
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.10.2012, 20:59     Не добавляются элементы в динамический массив
Посмотрите здесь:

В новый динамический массив выписать все элементы массива, которые делятся на заданное число C++
C++ однонаправленный список: элементы добавляются и удаляются с начала, просматриваются с конца списка
C++ Создать динамический массив нужного размера и скопировать в него все положительные элементы из первых двух массивов
C++ Реализовать двумерный динамический треугольный массив. Количество строк и сами элементы вводит пользователь. Количество элементов в строке рассчитывае
Двумерный динамический массив (Получить векторный столбец, элементы которого являются наименьшим по модулю столбцов исходной матрицы) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
BuPy7
Нет ТЗ - давай досвидания
 Аватар для BuPy7
747 / 344 / 30
Регистрация: 01.12.2011
Сообщений: 2,027
07.10.2012, 21:08     Не добавляются элементы в динамический массив #2
Суть работы с динамическими данными:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
    //создаём массив
    int *a = new int[5];
    
    //заполняем
    for (int i = 0; i != 5; i++)
        cin >> a[i];
    
    //распечатываем
    for (int i = 0; i != 5; i++)
        cout << a[i] << " ";
          
          //освобождаем память
          delete a;
Добавлено через 2 минуты
P.S. А код у вас рабочий.
PinkPink
9 / 9 / 2
Регистрация: 10.05.2012
Сообщений: 279
07.10.2012, 21:12  [ТС]     Не добавляются элементы в динамический массив #3
только он почему-то не работает -_-
Добавила скриншот, посмотрите
на изображении видно, что массив по прежнему пуст, хотя значение j показывает, что уже должно быть добавлено несколько элементов
Миниатюры
Не добавляются элементы в динамический массив  
BuPy7
Нет ТЗ - давай досвидания
 Аватар для BuPy7
747 / 344 / 30
Регистрация: 01.12.2011
Сообщений: 2,027
07.10.2012, 21:24     Не добавляются элементы в динамический массив #4
Это адрес элемента в памяти Вы же указатель на массив типа int создали.
Запустите этот код, и посмотрите как это работает. Вопросы сразу отпадут и всё станет ясно.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//main.cpp
#include <iostream>
#include <conio.h>
#include <locale.h>
 
using namespace std;
 
int main()
{
    //русифицируем консоль
    setlocale(LC_ALL, "Russian");
     
    int *a = new int[1];
    a[0] = 5;
 
    cout << "Адрес: " << a << " Значение записанное в адресе: " << *a;
 
    _getch();   //задержка
    return 0;
}
PinkPink
9 / 9 / 2
Регистрация: 10.05.2012
Сообщений: 279
07.10.2012, 21:32  [ТС]     Не добавляются элементы в динамический массив #5
Цитата Сообщение от Metallnote Посмотреть сообщение
Это адрес элемента в памяти Вы же указатель на массив типа int создали.
Запустите этот код, и посмотрите как это работает. Вопросы сразу отпадут и всё станет ясно.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//main.cpp
#include <iostream>
#include <conio.h>
#include <locale.h>
 
using namespace std;
 
int main()
{
    //русифицируем консоль
    setlocale(LC_ALL, "Russian");
     
    int *a = new int[1];
    a[0] = 5;
 
    cout << "Адрес: " << a << " Значение записанное в адресе: " << *a;
 
    _getch();   //задержка
    return 0;
}
оооо
а я то думаю >< как такое может не работать
спасибо большое, прям камень с души)
Yandex
Объявления
07.10.2012, 21:32     Не добавляются элементы в динамический массив
Ответ Создать тему
Опции темы

Текущее время: 17:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru