PDA

View Full Version : سوال: Object به صورت اشاره گر



aapalireza
یک شنبه 14 فروردین 1390, 12:54 عصر
سلام
من می‌خواهم در سی شارپ, از استراکچری که تعریف کرده ام, آبجکتی به صورت اشاره گر یا pointer تعریف کنم,
اما به هر دو جور زیر گیر میده!
چه جوری باید بنویسم؟!

کد اشتباه 1:


struct treenode
{
int data;
int num;
treenode *next;
treenode *right;
treenode *left;
}*start=NULL,*end=NULL,*p;



کد اشتباه 2:


struct treenode
{
int data;
int num;
treenode *next;
treenode *right;
treenode *left;
}
///////////////////////

treenode* start = new treenode();
*start = null;

Directx
یک شنبه 14 فروردین 1390, 13:17 عصر
دوست عزیز برای کار با اشاره گرها و آدرس ها شما بایدکد این موارد رو داخل بلاک unsafe بنویسید و اینکه روی پروژه کلیک راست کنید propertisو از قسمت build تیک گزینه ی allow unsafe code رو علامت بزیند

aapalireza
یک شنبه 14 فروردین 1390, 13:22 عصر
راه دیگه یی نیست؟
میشه این راه را کامل توضیح دهید؟
داخل unsafe چی بنویسم؟!

Directx
یک شنبه 14 فروردین 1390, 13:27 عصر
ببین هر جا که اشاره گر داشتی کدتو داخل unsafe بنویس مثلا
unsafe
{
int* number;
}

درضمن allow unsafe code رو هم علامت بزن

aapalireza
یک شنبه 14 فروردین 1390, 13:33 عصر
بله
الان با مطالعه در چند سایت دیگر unsafe ها را تا حدودی فهمیدم
از شما به خاطر این راهنمایی متشکرم,
الان می دانم که اگر داخل کلاس از اشاره گر استفاده کنم باید unsafe کنم

اما اشاره گر به کلاس را چه گونه unsafe کنم؟
میشه بیشتر توضیح بدهید؟

مثلا در مثال بالا یک اشاره گر از نوع treenode تعریف کنم,
چه جوری new و unsafe کنم؟؟؟
ممنون

Directx
یک شنبه 14 فروردین 1390, 14:13 عصر
دوست عزیز توصیه می کنم که اصلا برای کلاس ها از unsafe استفاده نکنید زیرا در این صورت مدیریت حافظه خیلی سخت خواهد شد و باید با مفاهیم کامل کلمات کلیدی مانند unsafe و fixed و ... آشنایی پیدا کنید در هر صورت فکر کنم این (http://www.c-sharpcorner.com/UploadFile/pcurnow/usingpointers10022007082330AM/usingpointers.aspx)بتونه کمک کنه

m.soleimani
یک شنبه 14 فروردین 1390, 14:31 عصر
سلام
من می‌خواهم در سی شارپ, از استراکچری که تعریف کرده ام, آبجکتی به صورت اشاره گر یا pointer تعریف کنم,
اما به هر دو جور زیر گیر میده!
چه جوری باید بنویسم؟!

کد اشتباه 1:


struct treenode
{
int data;
int num;
treenode *next;
treenode *right;
treenode *left;
}*start=NULL,*end=NULL,*p;



کد اشتباه 2:


struct treenode
{
int data;
int num;
treenode *next;
treenode *right;
treenode *left;
}
///////////////////////

treenode* start = new treenode();
*start = null;


شما چرا لقمه رو دور سر خودت می‌گردونی مگه سی++ چشه که اومدی سراغ سی‌شارپ اونم با همچین قصدی به هر حال با استفاده از بلاک unsafe اگر دقت نکنی ممکنه کل پروژه خودت رو خراب کنی موفق باشید./

aapalireza
یک شنبه 14 فروردین 1390, 15:07 عصر
آحه نمی خوام پروژه ام تحت کنسول باشه
می خوام ویندوزی باشه و از textbox و button استفاده کنم
پروژه ی من پیاده سازی الگوریتم فشرده سازی هافمن است و محیط های ویژوال فقط با سی شارپ و وی بی 6 آشنا هستم...