PDA

View Full Version : یه نیمچه سوال در مورد اشاره گر ها



1485159
جمعه 26 تیر 1388, 01:30 صبح
من تازه با اشاره گر ها آشنا شدم و یه چیزی نوشتم :

procedure pp(var x:Pointer);
var i:integer;
begin
i:=integer(x);
i:=i+1;
integer(x):=i;
end;
procedure TForm1.FormCreate(Sender: TObject);
var d:Pointer;
begin
integer(d):=50;
pp(d);
showmessage(inttostr(integer(d)));
end;
این کد بدون مشکل کار میکنه میخواستم بدونم که از لحاظ علمی مشکلی نداره؟
آخه وقتی dispose رو میزنم ارور میده....
ممنون

1485159
جمعه 26 تیر 1388, 10:30 صبح
کسی نظری نداره؟

vcldeveloper
جمعه 26 تیر 1388, 12:18 عصر
میخواستم بدونم که از لحاظ علمی مشکلی نداره؟
هدفتان از این کد چی بود؟


آخه وقتی dispose رو میزنم ارور میده....
کجا از Dispose استفاده کردید؟ در این کد که خبری از Dispose نیست.

حمیدرضاصادقیان
جمعه 26 تیر 1388, 12:27 عصر
سلام.همونطور که علی آقا گفتند این کد کار خاصی انجام نمیده.بعد شما کجا از DISPOSE استفاده می کنید.؟
موفق باشید

1485159
جمعه 26 تیر 1388, 18:19 عصر
چرا کار خواسی انجام نمیده ؟؟پارامتری رو که ورودی تابع داده شده یدونه اضافه میکنهحالا dispose رو ول کن

vcldeveloper
جمعه 26 تیر 1388, 22:38 عصر
چرا کار خواسی انجام نمیده ؟؟پارامتری رو که ورودی تابع داده شده یدونه اضافه میکنه
خب، این چه ربطی به Pointer داره؟ این کار را می تونستید با Integer انجام بدید، نیازی به استفاده از Pointer نبود. کم و زیاد کردن مقدار یک Pointer به خودی خود عمل خاصی محسوب نمیشه. وقتی نوع کار شما با Pointer مشخص نیست، بحث درباره علمی بودن یا نبودن کار شما معنی نداره.

1485159
جمعه 26 تیر 1388, 22:45 عصر
انگار شما دقیق منظور من رو نفهمیدی:مثلا ما به عنوان پارامتر متغیر x رو دادیم، حالا میاد به متغیر x یدونه اضافه میکنه.ممنون.

Felony
جمعه 26 تیر 1388, 23:00 عصر
انگار شما دقیق منظور من رو نفهمیدی:مثلا ما به عنوان پارامتر متغیر x رو دادیم، حالا میاد به متغیر x یدونه اضافه میکنه.ممنون.

خوب آقای کشاورز هم گفت که :

وقتی نوع کار شما با Pointer مشخص نیست، بحث درباره علمی بودن یا نبودن کار شما معنی نداره.