У меня есть высокие требования к памяти в моем коде, и это утверждение повторяется много раз:Ошибка памяти в C++
Node** x;
x = new Node*[11];
Он терпит неудачу в этом распределении. Я понял эту строку, выбросив вывод на консоль!
Я строю свой код на Visual Studio. Он отлично работает в режиме отладки (как в VS2005, так и VS2008) Однако он выдает ошибку в режиме выпуска VS2005. Прямой exe, сгенерированный из cl Program.cpp работает, если cl из VS2010, но не работает, когда он находится на VS2005. Любые подсказки?
PS: Linux дает мне Bus Error (основной сбрасывали) для одних и тех же Благодаря
UPDATE: И я думаю, это может быть связано с «выровненным» вещь, как я понимаю. Я просто сделал 11-12 (или даже четное число), и он работает !!! Я не знаю почему. Он не работает с нечетными номерами!
Обновление 2: http://www.devx.com/tips/Tip/13265?
Почему вы не используете 'std :: vector'? – GManNickG
Ошибка шины - это, как правило, неприглашенный доступ, используете ли вы свой массив с указателем на узел, как если бы это был массив узлов? – falstro
Привет, GMan, спасибо за ответ. Я не могу использовать std :: vector, потому что мне сказали не использовать его :) И я думаю, это может быть из-за «неприсоединения», как я понимаю. Я просто сделал 11-12 (или даже четное число), и он работает !!! Я не знаю почему. Он не работает с нечетными номерами! –