В искустве летать есть один маленький секрет. Секрет этот в том,чтобы бросить себя изо всех сил на землю — и не попасть. Выберете погожий денек и попробуйте сами.
Re[2]: Глюк с (unsigned short* a = new unsigned short[2];)
Здравствуйте, screw_cms, Вы писали:
_>Здравствуйте, Amon-RA, Вы писали:
AR>>Почему после этой строчки (сабж) а == 0х00000000; ерунда какая-то
_>Попробовал тестовый примерчик — у меня a == 0x002f1000...
Так в том то и дело, что у меня такая штука в двух местах. В одном не NULL, а другом NULL
Re[2]: Глюк с (unsigned short* a = new unsigned short[2];)
В искустве летать есть один маленький секрет. Секрет этот в том,чтобы бросить себя изо всех сил на землю — и не попасть. Выберете погожий денек и попробуйте сами.
Re[4]: Глюк с (unsigned short* a = new unsigned short[2];)
Здравствуйте, BOPOH_N, Вы писали:
BOP>Здравствуйте, Amon-RA, Вы писали:
AR>>Здравствуйте, BOPOH_N, Вы писали:
BOP>>>Приведи полный кусок кода.
AR>>{ AR>>unsigned short* trInd = new unsigned short[2]; AR>>trInd[0] = (unsigned short)uCount; AR>>trInd[1] = (unsigned short)vCount; AR>>.......
BOP>Это не есть полный код
BOP>Попробуй перекомпилять весь проект
Перекомпилял. Щас застрелюсь
Re[5]: Глюк с (unsigned short* a = new unsigned short[2];)
Здравствуйте, Amon-RA, Вы писали:
AR>Здравствуйте, screw_cms, Вы писали:
_>>Здравствуйте, Amon-RA, Вы писали:
AR>>>Почему после этой строчки (сабж) а == 0х00000000; ерунда какая-то
_>>Попробовал тестовый примерчик — у меня a == 0x002f1000...
AR>Так в том то и дело, что у меня такая штука в двух местах. В одном не NULL, а другом NULL
Здравствуйте, Lorenzo_LAMAS, Вы писали:
AR>>Смешно. Но зачем приводить то, что не имеет оотношения к делу. До этого и после этого нет ничего что так влияло бы на trInd
L_L>Ну так если ты напишешь такое
L_L>
Здравствуйте, Amon-RA, Вы писали:
AR>Здравствуйте, BOPOH_N, Вы писали:
BOP>>Здравствуйте, Amon-RA, Вы писали:
AR>>>Здравствуйте, BOPOH_N, Вы писали:
BOP>>>>Приведи полный кусок кода.
AR>>>{ AR>>>unsigned short* trInd = new unsigned short[2]; AR>>>trInd[0] = (unsigned short)uCount; AR>>>trInd[1] = (unsigned short)vCount; AR>>>.......
BOP>>Это не есть полный код
BOP>>Попробуй перекомпилять весь проект
AR>Перекомпилял. Щас застрелюсь
В искустве летать есть один маленький секрет. Секрет этот в том,чтобы бросить себя изо всех сил на землю — и не попасть. Выберете погожий денек и попробуйте сами.
Re[6]: Глюк с (unsigned short* a = new unsigned short[2];)
Имеется ввиду код, где выделяется память и те места где ты сравниваешь её. А так понятно, что всё ОК, разве что ты в конструктор CShape() по-ссылке передаёшь и там обнуляешь.
Re[9]: Глюк с (unsigned short* a = new unsigned short[2];)
S> Имеется ввиду код, где выделяется память и те места где ты сравниваешь её. А так понятно, что всё ОК, разве что ты в конструктор CShape() по-ссылке передаёшь и там обнуляешь.
ЛЮДИИИИИИ Я не дохожу до CShape. Я вылетаю на trInd[0]=.....
Re[9]: Глюк с (unsigned short* a = new unsigned short[2];)
Здравствуйте, 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];)
Попробуй подключи crtdbg.h
и перед (или после ) вызови _CrtMemDumpAllObjectsSince( 0 ); и посмотри чего у тебя в Output напишется
В искустве летать есть один маленький секрет. Секрет этот в том,чтобы бросить себя изо всех сил на землю — и не попасть. Выберете погожий денек и попробуйте сами.
Re[13]: Глюк с (unsigned short* a = new unsigned short[2];)
BOP>Попробуй подключи crtdbg.h BOP>и перед (или после ) вызови _CrtMemDumpAllObjectsSince( 0 ); и посмотри чего у тебя в Output напишется
Ничего подключать не буду, так как нет у меня вижуала. Только к чему ты все это? Что, там что — то про исключение напишется? А какой у тебя вижуал? Какой проект и т.д.?
Of course, the code must be complete enough to compile and link.
Re[14]: Глюк с (unsigned short* a = new unsigned short[2];)
Здравствуйте, Lorenzo_LAMAS, Вы писали:
BOP>>Попробуй подключи crtdbg.h BOP>>и перед (или после ) вызови _CrtMemDumpAllObjectsSince( 0 ); и посмотри чего у тебя в Output напишется
L_L>Ничего подключать не буду, так как нет у меня вижуала. Только к чему ты все это? Что, там что — то про исключение напишется? А какой у тебя вижуал? Какой проект и т.д.?
Извени это я не тебе а Amon-RA, предлагал. Функция (под Дебагом) выведет в Output инфу о занятой в куче памяти.
В искустве летать есть один маленький секрет. Секрет этот в том,чтобы бросить себя изо всех сил на землю — и не попасть. Выберете погожий денек и попробуйте сами.
Re[15]: Глюк с (unsigned short* a = new unsigned short[2];)
Проверьте второй сдвоенный цикл, что стоит перед злополучным выделением памяти.
Я досконально не просматривал, но по-моему там index вылетает за пределы vertMap.
Ведь в vertMap 8 флоатов, а index похоже где-то до 32 дойдет.
Вполне возможно, что это и на выделение памяти как-то влияет.
L_L>Да, про это Vi2 писал, но почему это влияет на выделение памяти?
Ну, кто знает, что там в этой запорченной памяти было.
Может какие описатели сегментов, которые говорят как куски памяти используются.
А это все очень запросто может повлиять на выделение памяти.
В общем пока хозяин не напишет, что эту странность исправил и все равно NULL возвращается, больше думать смысла не вижу. А хозяин похоже пиво пошел пить...
Re: Глюк с (unsigned short* a = new unsigned short[2];)
Привет все.
Простите Христа ради, что из-за такой идиотской ошибки столько шуму поднял. Я видать на самом деле вылез за массив — как только это исправил, сразу стало все нормально. Спасибо всем. С меня пиво