мне было интересно, когда вы объявляете переменную в цикле он имеет в течение этого цикла и тот же адрес в памяти? Почему это происходит? После цикла, если я объявляю его снова, у него есть другой адрес памяти.декларирование переменных в цикле
Если он имеет тот же адрес, как я могу сделать что-то вроде этого
`char *p[100]
cin>>n;
for(i=0;i<n;++i)
{char b[100];
cin>>b;
p[i]=b;
}`
В конце концов, когда я хочу, чтобы отобразить значение р [I], но б имеет тот же адрес, и я в конечном итоге тот же адрес в p [i]. Как это можно сделать без динамического распределения памяти? Это можно сделать так?
и почему память остается тем же самым в цикле? Это является оптимизация компилятор или обычно поведение? Компилятор не декларирует его каждый раз, когда он проходит через эту декларацию? Почему он декларируется в одном и том же месте? –
Он разработан так, потому что он не нужен. вы можете себе представить, насколько это было бы неэффективно, если бы он выделял 1000-кратную память для одной переменной в цикле. – logonmanish