Здравствуйте, Amon-RA, Вы писали:
AR>Здравствуйте, Lorenzo_LAMAS, Вы писали:
L_L>>[ccode] AR>>>/*******************************************/ AR>>> unsigned short* trInd = new unsigned short[2]; AR>>> trInd[0] = (unsigned short)uCount; AR>>> trInd[1] = (unsigned short)vCount; AR>>>/********************************************/ L_L>>//здесь то не 0? AR>>> CShape* shp; AR>>> shp = new CShape( AR>>> vertCount,vertCoo,vertNorm,vertMap,0,trInd,true,true AR>>> ); AR>>> msh = new CMesh(shp); AR>>> getWorld().addObject(msh);; L_L>>//а здесь ? L_L>>[/code]
AR>Так я и говорю, что ноль сразу после new unsigned short[2];
У меня всё ОК. new работает, как же иначе? Памяти у тебя не хватает, что-ли?
Re[10]: Глюк с (unsigned short* a = new unsigned short[2];)
Здравствуйте, Lorenzo_LAMAS, Вы писали:
L_L>Ну, значит, ты как то умудрился всю память исчерпать? Кстати, new Должен исключение бросить
Интересно, я если эту функцию не вызываю и иду дальше, то он грузит двухметровый 3DS файл и тесктуры — на это место хватает. А на два беззнаковых коротких ну расшибись места нет
Re[9]: Глюк с (unsigned short* a = new unsigned short[2];)
Здравствуйте, Amon-RA, Вы писали:
AR>Здравствуйте, sercher, Вы писали:
S>> Имеется ввиду код, где выделяется память и те места где ты сравниваешь её. А так понятно, что всё ОК, разве что ты в конструктор CShape() по-ссылке передаёшь и там обнуляешь.
AR>ЛЮДИИИИИИ Я не дохожу до CShape. Я вылетаю на trInd[0]=.....
А если не unsigned short, а, например, short или int? или char[4] ?
Ты оператор new часом не переопределял?
Re[11]: Глюк с (unsigned short* a = new unsigned short[2];)
AR>Интересно, я если эту функцию не вызываю и иду дальше, то он грузит двухметровый 3DS файл и тесктуры — на это место хватает. А на два беззнаковых коротких ну расшибись места нет
Ну попробуй поставить std::set_new_handler — и свою функцию, которая тебе сообщит прав я или нет туда засунь.
Of course, the code must be complete enough to compile and link.
Re[10]: Глюк с (unsigned short* a = new unsigned short[2];)
Здравствуйте, sercher, Вы писали:
S>Здравствуйте, Amon-RA, Вы писали:
AR>>Здравствуйте, sercher, Вы писали:
S>>> Имеется ввиду код, где выделяется память и те места где ты сравниваешь её. А так понятно, что всё ОК, разве что ты в конструктор CShape() по-ссылке передаёшь и там обнуляешь.
AR>>ЛЮДИИИИИИ Я не дохожу до CShape. Я вылетаю на trInd[0]=.....
S> А если не unsigned short, а, например, short или int? или char[4] ? S> Ты оператор new часом не переопределял?
Да нет, не переопределял. Я тогда не пойму, фиг ли эта же строчка в другом месте работает
Re[7]: Глюк с (unsigned short* a = new unsigned short[2];)
Здравствуйте, Amon-RA, Вы писали:
AR>Здравствуйте, BOPOH_N, Вы писали:
AR>
AR> int vertCount = 4;
AR> float* vertCoo = new float[vertCount*3];
AR> float* vertNorm = new float[vertCount*3];
AR> MyVector center(0,0,5);
AR> for(int ct = 0, index = 0; ct < vertCount; ct++, index += 3)
AR> {
AR> MyVector pos(ct,ct,index);
AR> pos.subtract(center);
AR> vertCoo[index ] = (float)pos.getX();
AR> vertNorm[index ] = 0.0;
AR> vertCoo[index+1] = (float)pos.getY();
AR> vertNorm[index+1] = 0.0;
AR> vertCoo[index+2] = (float)pos.getZ();
AR> vertNorm[index+2] = 1.0;
AR> }
AR> float* vertMap = new float[vertCount*2];
AR> int uCount = 4;
AR> int vCount = 4;
AR> float vStep = 1.0f/(vCount-1);
AR> float uStep = 1.0f/(uCount-1);
AR> int v;
AR> for( v = 0, index = 0; v < vCount; v++)
AR> {
AR> float vConst = v*vStep;
AR> for(int u = 0; u < uCount; u++, index += 2)
AR> {
AR> vertMap[index ] = u*uStep;
AR> vertMap[index+1] = vConst;
AR> }
AR> }
AR>/*******************************************/
unsigned short* trInd1 = new unsigned short[2];
AR> unsigned short* trInd = new unsigned short[2];
unsigned short* trInd2 = new unsigned short[2]; //Чисто для эксперимента добавь
AR> trInd[0] = (unsigned short)uCount;
AR> trInd[1] = (unsigned short)vCount;
AR>/********************************************/
AR> CShape* shp;
AR> shp = new CShape(
AR> vertCount,vertCoo,vertNorm,vertMap,0,trInd,true,true
AR> );
AR> msh = new CMesh(shp);
AR> getWorld().addObject(msh);;
AR>
В искустве летать есть один маленький секрет. Секрет этот в том,чтобы бросить себя изо всех сил на землю — и не попасть. Выберете погожий денек и попробуйте сами.
Re[8]: Глюк с (unsigned short* a = new unsigned short[2];)
Здравствуйте, Amon-RA, Вы писали:
AR>Почему после этой строчки (сабж) а == 0х00000000; ерунда какая-то
Очень любопытный баг... Кстати, в какой среде это всё происходит? У меня как-то пару раз бывали тоже совершенно необъяснимые баги. Сейчас уже не помню точный пример, но примерно так же — в проекте моём не работает, хоть ты тресни, а в новом проекте или даже в другой функции всё ок. И я придумал такой способ: создаю новый чистый проект, и постепенно, файл за файлом переношу свой проект в новый, периодически перекомпиляя и проверяя, работает ли. В конце концов получаю практически идентичные проекты, один работает, другой — нет
Так я и не разобрался тогда, в чём было дело. Может, глюк среды?
Ещё такой вариант сейчас в голову пришёл: напиши сразу после твоей строчки с new другую строчку типа int* abvgd = new int[2]; и проверь, работает ли она. Если да — то потихоньку переделывай её в свою, после каждого изменения проверяя работоспособность. Если нет — то же самое сделай ПЕРЕД своей строчкой... Да, и ещё — переменной abvgd не должно быть НИГДЕ в проекте! (на всякий пожарный).
Почему же, ё-моё, ты нигде не пишешь «ё»?
Re[2]: Глюк с (unsigned short* a = new unsigned short[2];)
Здравствуйте, Amon-RA, Вы писали:
AR>Здравствуйте, BOPOH_N, Вы писали:
AR>>>/*******************************************/ BOP>> unsigned short* trInd1 = new unsigned short[2]; AR>>> unsigned short* trInd = new unsigned short[2]; BOP>> unsigned short* trInd2 = new unsigned short[2]; //Чисто для эксперимента добавь AR>>> trInd[0] = (unsigned short)uCount; AR>>> trInd[1] = (unsigned short)vCount; AR>>>/********************************************/
AR>Зашибись, все нули
Мля — против этого тока одно средство — пойти попить пивка, а уторм все само пройдет
В искустве летать есть один маленький секрет. Секрет этот в том,чтобы бросить себя изо всех сил на землю — и не попасть. Выберете погожий денек и попробуйте сами.
Re[2]: Глюк с (unsigned short* a = new unsigned short[2];)
Здравствуйте, Константин, Вы писали:
К>Здравствуйте, Amon-RA, Вы писали:
AR>>Почему после этой строчки (сабж) а == 0х00000000; ерунда какая-то
К>Очень любопытный баг... Кстати, в какой среде это всё происходит? У меня как-то пару раз бывали тоже совершенно необъяснимые баги. Сейчас уже не помню точный пример, но примерно так же — в проекте моём не работает, хоть ты тресни, а в новом проекте или даже в другой функции всё ок. И я придумал такой способ: создаю новый чистый проект, и постепенно, файл за файлом переношу свой проект в новый, периодически перекомпиляя и проверяя, работает ли. В конце концов получаю практически идентичные проекты, один работает, другой — нет К>Так я и не разобрался тогда, в чём было дело. Может, глюк среды?
К>Ещё такой вариант сейчас в голову пришёл: напиши сразу после твоей строчки с new другую строчку типа int* abvgd = new int[2]; и проверь, работает ли она. Если да — то потихоньку переделывай её в свою, после каждого изменения проверяя работоспособность. Если нет — то же самое сделай ПЕРЕД своей строчкой... Да, и ещё — переменной abvgd не должно быть НИГДЕ в проекте! (на всякий пожарный).
Спасибо. Я в шестой студии
Re[3]: Глюк с (unsigned short* a = new unsigned short[2];)
Если бы генерилось исключение он бы не попал на следующую строку.
В искустве летать есть один маленький секрет. Секрет этот в том,чтобы бросить себя изо всех сил на землю — и не попасть. Выберете погожий денек и попробуйте сами.
Re[11]: Глюк с (unsigned short* a = new unsigned short[2];)