-2
Я пытаюсь скомпилировать C++ на visual studio в первый раз, и я провожу ошибку.неинициализированная локальная переменная
/***Setup****/
struct id_priority{
int id;
int priority;
};
struct temp_heap{
int id;
int priority;
};
/**heapify up**/
void heapify(id_priority heap[], int index, int length, temp_heap temp){
}
int main(){
int *command_processed;
command_processed = new int[6];
id_priority *heap;
heap = new id_priority[1000];
temp_heap temp;
int index = 0;
int length = 0;
heapify(heap, index, length, temp);
return (0);
}
heapify (куча, указатель, длина, темп); В этой строке говорится, что используется неинициализированная локальная переменная «temp», , но этот код отлично работает на терминале в Linux. Я не знаю, что здесь не так.
'temp' не инициализирован, поэтому он говорит, что это неинициализированным. – MikeCAT
Невозможно включить предупреждения о компиляторе на терминале в Linux. – MikeCAT
Чтобы быть понятным, переменная неинициализированная имеет неопределенное значение и использование [и неопределенное значение - неопределенное поведение] (http://stackoverflow.com/a/23415662/1708801). В вашем случае вы передаете «temp» по значению, что означает, что это приведет к неопределенному значению, и это вызовет неопределенное поведение. –