
20.01.2010, 21:45
|
|
Постоянный
Регистрация: 06.06.2007
Сообщений: 575
С нами:
9963746
Репутация:
180
|
|
Что произойдет если сделать так
A - указатель на динамически созданный массив размерности X
A = (int*) realloc(A, Y*sizeof(int));
Если Y < X.
Уменьшиться размер массива и затрется последний элемент (что собсно и нужно) или что то неопределенное ?
Вот то что я хочу сделать
Код:
int main(){
int *mas = new int [5];
int mas1[]={1,2,3,4,5};
for (int i=0; i<5; i++)
mas[i] = mas1[i];
mas = (int*) realloc(mas, 3*sizeof(int));
for (int i=0; i<5; i++)
cout<<mas[i]<<" ";
cout<<endl;
}
Оно выводит 1 2 3 4 5
Но я не могу проверить выводит оно это потому что:
1. Память не успела затереться но за границу массива мы уже вышли
2. Граница массива осталась на прежнем месте
Последний раз редактировалось cupper; 20.01.2010 в 22:13..
|
|
|