Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.02.2019, 16:32   #1
NikSis
Новичок
Джуниор
 
Регистрация: 20.01.2015
Сообщений: 1
Злость Работа с одномерными и двумерными массивами

Не понимаю почему так происходит.
В 1 блоке в одномерный массив Landscape03Vtx_1 записываются значения из двумерного массива y[][].
И с Landscape03Idx_1 и r[][] аналогично. Одновременно эти значения записываются в txt файл. (тут ни каких ошибок нет, выводит как и должно).

toch1.txt:
-13.226, -9.78958, 19,
-13.226, -9.78958, 0,
11.774, -9.78958, 0,
11.774, -9.78958, 19,
11.774, 10.2104, 19,
-13.226, 10.2104, 0,
-13.226, 10.2104, 19,
11.774, 10.2104, 0,

face1.txt:
2 1 3
1 4 3
4 5 3
5 8 3
8 5 6
5 7 6
2 6 1
6 7 1
4 1 5
1 7 5
3 8 2
2 8 6


Сразу после этого, во 2 блоке (между ними ни каких операций нет), снова проделывается операция записи одномерных массивов в tet файлы. Вот тут уже возникают ошибки, которые я не понимаю из за чего, при чем меняются не все значения, а только некоторые и только в одном файле. Подскажите в чем проблема.

toch1.txt:
-13.226, 1.6976e-313, 6.95344e-309,
4.17218e-309, 6.95348e-309, 8.34407e-309,
1.39082e-309, 1.39078e-309, 1.11254e-308,
8.3442e-309, -9.78958, 19,
11.774, 10.2104, 19,
-13.226, 10.2104, 0,
-13.226, 10.2104, 19,
11.774, 10.2104, 0,

face1.txt:
2 1 3
1 4 3
4 5 3
5 8 3
8 5 6
5 7 6
2 6 1
6 7 1
4 1 5
1 7 5
3 8 2
2 8 6

Код:
int x = 0; //количество вершин точек сетки
int e = 0; //количество граней сетки
double **y; //массив координат точек
double **r; //массив граней сетки
 
btScalar Landscape03Vtx_1[] = { 0, };
unsigned short Landscape03Idx_1[] = { 0, };
int LandscapeVtxCount_1[] = { 0, };
int LandscapeIdxCount_1[] = { 0, };
btScalar* LandscapeVtx_1[] = { 0, };
unsigned short* LandscapeIdx_1[] = { 0, };
 
//1 Блок
 
int oh1 = 0;
    ofstream toch("D:\\new\\Visualc1\\Cube\\Mesh\\toch1.txt");
    for (int i1 = 0; i1 < x; i1++)
    {
        Landscape03Vtx_1[oh1] = y[i1][1];
        toch << Landscape03Vtx_1[oh1] << " ";
        oh1 = oh1 + 1;
 
        Landscape03Vtx_1[oh1] = y[i1][2];
        toch << Landscape03Vtx_1[oh1] << " ";
        oh1 = oh1 + 1;
 
        Landscape03Vtx_1[oh1] = y[i1][3];
        toch << Landscape03Vtx_1[oh1] << " ";
        oh1 = oh1 + 1;
 
        toch << endl;
    }
 
 
int oh = 0;
    ofstream face("D:\\new\\Visualc1\\Cube\\Mesh\\face1.txt");
    for (int i = 0; i < e; i++)
    {
        Landscape03Idx_1[oh] = r[i][1];
        face << Landscape03Idx_1[oh] << " ";
        oh = oh + 1;
 
        Landscape03Idx_1[oh] = r[i][2];
        face << Landscape03Idx_1[oh] << " ";
        oh = oh + 1;
 
        Landscape03Idx_1[oh] = r[i][3];
        face << Landscape03Idx_1[oh] << " ";
        oh = oh + 1;
 
        face << endl;
    }
 
 
//2 Блок
    ofstream f1231("D:\\new\\Visualc1\\Cube\\Mesh\\toch.txt");
    f1231 << x << endl;
    for (int i = 0; i < x * 3; i++)
    {
        f1231 << Landscape03Vtx_1[i] << " " << Landscape03Vtx_1[i + 1] << " " << Landscape03Vtx_1[i + 2] << endl;
        i = i + 2;
    }
 
    ofstream f12312("D:\\new\\Visualc1\\Cube\\Mesh\\face.txt");
    f12312 << e << endl;
    for (int i = 0; i < e * 3; i++)
    {
        f12312 << Landscape03Idx_1[i] << " " << Landscape03Idx_1[i + 1] << " " << Landscape03Idx_1[i + 2] << endl;
        i = i + 2;
    }
А если между 1 и 2 блоком еще добавить необходимые для программы строки, то и во втором файле значения тоже изменяться.

Код:
    LandscapeVtxCount_1[0] = { x, };
 
    LandscapeIdxCount_1[0] = { e, };
 
    LandscapeVtx_1[0] = { Landscape03Vtx_1, };
 
    LandscapeIdx_1[0] = { Landscape03Idx_1, };
NikSis вне форума Ответить с цитированием
Старый 19.02.2019, 16:53   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Код:
btScalar Landscape03Vtx_1[] = { 0, };
Какого размера будет массив?
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Pascal ABC.NET] Работа с одномерными и двумерными массивами. egenija_19 Помощь студентам 1 09.05.2017 22:44
Указатели при работе с одномерными и двумерными массивами Credo4444 Помощь студентам 13 20.04.2011 20:04
работа с двумерными массивами Lellya Помощь студентам 0 10.04.2011 23:11
работа с двумерными массивами Lellya Помощь студентам 2 15.02.2011 10:21
Работа с одномерными и двумерными массивами в Delphi arhaon Помощь студентам 4 10.06.2010 15:50