ورود

View Full Version : سوال: مقدار دهی حافظه پویا



mohsen_nikoei
یک شنبه 01 شهریور 1394, 19:21 عصر
salam dostan to in barname man size arraye ro barabare 5 gharr dadam vali to tabe har andaze delkhah mishe vorodi dad .. chera ?



void input(char *p
{
int i = 0;
while (i<15)
{

cin >> *(p + i);
i++;


}

cout << *(p + 10) << endl;


}


int _tmain(int argc, _TCHAR* argv[])
{
int n = 5;
char *p=new char[n];
input(p);


return 0;
}

ehsan_faal
یک شنبه 01 شهریور 1394, 20:48 عصر
به نظر من میشه چون که شما فقط آدرس شروع اون بلاک از حافظه رو که توی main گرفتید رو به تابع فرستادید.
یعنی از 5 تا خونه که رد میشه میره سراغ ادامه همون بلاک 5 تایی در حالی که ممکنه توسط یه ببرنامه دیگه در حال استفاده باشه.

rahnema1
یک شنبه 01 شهریور 1394, 21:12 عصر
سلام
در زبان c و ++c مسئولیت اینکه از محدوده آرایه تجاوز نشه به عهده ی برنامه نویس هست. و اگه از این محدوده تجاوز بشه بهش می گن رفتار تعریف نشده یا undefined behavior که ممکنه هر بلایی در حین اجرا بر سر برنامه بیاد