PDA

View Full Version : مبتدی: سوال: دسترسی به آرایه (حافظه پویا)



sara alavi
سه شنبه 06 بهمن 1388, 17:46 عصر
سلام دوستان



به وسیله تخصیص حافظه پویا ارایه ای count تایی از integer گرفتم ومیخواهم دستور زیر را در برنامه اجرا کنم:



for(i=count-1;i>=0;i--)

{
if(*(m+i)>= *(p+i))
q[j]=*(m+i)-*(p+i);
else
{
q[j]=*(m+i)+10-*(p+i);
*(m+i-1)-1;
}
j++;
}







خط زیر در برنامه اجرا نمی شود:






*(m+i-1)-1;





در خط فوق باید از عدد ما قبل 1 واحد کم شود ولی نمیشود.





کمک!!:عصبانی++:

clover
سه شنبه 06 بهمن 1388, 19:12 عصر
خط زیر در برنامه اجرا نمی شود
در خط فوق باید از عدد ما قبل 1 واحد کم شود ولی نمیشود.
آخه این خط کاری انجام نمیده، 1 - (m+i-1)* یک عبارت هست و حاصلش هم یک عدد که می تونه به عنوان یک راست مقدار استفاده بشه (داخل متغیر دیگه ای ریخته بشه)
کاری که مد نظر شماست با این کد انجام میشه:

(*(m + i - 1))--;
و یا

*(m + i - 1) = *(m + i - 1) - 1;

sara alavi
سه شنبه 06 بهمن 1388, 19:20 عصر
کاری که مد نظر شماست با این کد انجام میشه:

(*(m + i - 1))--;
و یا

*(m + i - 1) = *(m + i - 1) - 1;[/quote]


اول همینجوری نوشتم ولی error زیر رو داد:

Lvalue required

sara alavi
سه شنبه 06 بهمن 1388, 19:28 عصر
با کد دومی که گفتید درست انجام میشه، کد اول اون error رو داشت.
ممنون:لبخندساده:

clover
سه شنبه 06 بهمن 1388, 19:52 عصر
خواهش می کنم

اول همینجوری نوشتم ولی error زیر رو داد:
احتمالا یک جفت پرانتز کم گذاشته بودید وگرنه کد اول هم درست کار میکنه. در مواردی که از اولویت عملگر ها مطمئن نیستید از پرانتز های بیشتری استفاده کنید، حتی اگر پرانتز های زائد هم باشند در بیشتر موارد به خوانایی برنامه کمک می کنند.