2015-03-30 6 views
3

Я пытался заполнить массив xlow, извлекая некоторые элементы из массива с именем exit_2. Сделав массив xlow, я хотел получить доступ к определенным элементам, но код дает некоторые странные числа.Как заполнить массив, извлекая частичный массив

#include <stdio.h> 
int main() 
{ 
int exit_1[4]={3,0,7,11},exit_2[4]={90,164,232,328},xlow[2],i; 
for(i=0;i<4;++i){ 
    if(exit_1[i]<7){ 
     xlow[2]=exit_2[i]; 
    } 
} 
printf("%d",xlow[0]); 
return 0; 
} 

Спасибо вашей помощи

ответ

1
xlow[2]=exit_2[i]; 

Как вы видите, вы инициализируете xlow[2]. xlow[0] по-прежнему неинициализирован и использование неинициализированных переменных приводит к неопределенному поведению.

int j=0; 
for(i=0;i<4;++i){ 
    if(exit_1[i]<7){ 
     if(j>1) 
     break; 
     else 
     xlow[j++]=exit_2[i]; 
    } 
} 
0

вы получите странные цифры, потому что xlow[0] никогда не записываются или инициализируется, вы только когда-либо писать xlow[2].

Это означает, что когда вы делаете printf("%d",xlow[0]);, программа будет просто печатать любые случайные значения в ячейке памяти xlow [0].