2013-03-17 2 views
-1

ИТАК, во-первых, я не гуру каст, ни большой пользователь отладчика, но ... В начале моей программы у меня есть что-то вроде этогоНеопределенное значение, отладчик, ПОЧЕМУ?

unsigned long totSize; 
    unsigned int partSize,lastPartSize; 
    unsigned short nbRessources; 
    const char* folder = "TYPE"; 

    getSizesRessource(folder, nbRessources, partSize, lastPartSize); 
    totSize = (nbRessources*partSize)+lastPartSize; 

Я не буду говорить об этом код, я не думаю, что это действительно имеет значение. Проблема заключается в следующем: отладчик показывает странное значение для папки или неопределенного значения, то же самое для totSize, но я уверен, что getSizesRessource работает хорошо, а остальные переменные правы Итак, почему отладчик не показывает значение righ или неопределенное значение даже если я его четко определю? Даже если я assigne «1» до totSize Это еще не определено в отладчике Спасибо

ответ

1
unsigned long totSize; 
    unsigned int partSize,lastPartSize; 
    unsigned short nbRessources; 

Предполагая, что фрагмент кода является локальным для функции. Вышеуказанное просто объявляет переменные с неинициализированными значениями технически они содержат Неопределенные значения. Поскольку имя Indeteminate предполагает, что эти значения могут быть буквально любыми.

Если вы используете функцию getSizesRessource для заполнения этих переменных, то ваши переменные должны передаваться по ссылке на функцию, иначе функция изменяет копии передаваемых переменных и изменения не будут отображаться вне функций.

+0

@ user2177904: Я должен быть правильно инициализирован. Если вы не покажете небольшой компилятивный пример минималистического кода, трудно спрогнозировать, почему вы получаете другой результат. –

+0

Я уже даю им ссылку: void getSizesRessource (const char * folder, unsigned short & nbRess, unsigned int & partSize, unsigned int & lastPartSize) за исключением папки, но этот является константой и инициализируется, и проблема здесь возникает. Отладчик не показывает значения папок, а не totsize, что является результатом некоторой математики. – user2177904

Смежные вопросы