اشاره گر ها مشکلشون تویه گرفتن حافظه هست. وقتی تعریف میکنید :
1 اشاره گر دارید که به 1 جایی داره اشاره میکنه. حالا به کجا؟ نمیدونید. مشکل همین جاست. p شامل ادرس محلی است ؛ ک میتونه این ادرس در ناحیه داده یا کد برنامه باشه/نباشه. میتونه مثلا به 1 قسمت غیر مجاز اشاره کنه که با مقدار دهی بهش کل سیستم عامل کرش کنه(البته ویندوز اجازه دسترسی به قسمت های مخصوص و نمیده ولی با داس میشه این کارو کرد)کد:
int *p
خب حالا راه حلش جیه.
باید به اشاره کرتون درست حافطه اختصاص بدید.
مثلا:
یا مثلاکد:p=new int
تویه این مثال ها p به 1 مکان درست اشاره میکنه که مجاز هست .کد:
char cc[]="123456";char *p;p=cc;
به خاطر این مسایل+یه سری چیزا ؛ کلا استفاده از اشاره گر توصیه نمیسه. به خاطر همین ارور پذیری بالا که میبینید. کلا مبحث سنگین هست چون ویزگی شبیه به زبان های سطح پایین هست. به قولی: رمز استفاده درست از اشاره گر ها این ه که بدونید هر لحظه به کجا اشاره میکنه.
اونم با وجود این کامپایلرهای پیش پیش رفته امروزی دلیلی ببرای استفاده از اشاره گر نیست. اگر هم اصرار به استفاده دارید باید به طور مثال به اشکال بالا ازش استفاده کنید.
_______________
بله.نقل قول:
__________-
__________
برای سوال اخرت هم این و ببین: