PDA

View Full Version : مشکلی در مورد برنامه نویسی به زبان C



LARACROFT
یک شنبه 21 فروردین 1384, 02:09 صبح
سلام.سال نو مبارک.می خواستم از شما کمک بگیرم تا بتونم برنامه بنویسم.
موضوع برنامه اینست:شبیه سازی تابع ()STRCAT و()STRCPY
متشکرم.لطفا هر چه سریعتر به من پاسخ بدهید.

C++Lover
دوشنبه 22 فروردین 1384, 07:41 صبح
شاید این به دردت بخوره .


char* SimStrCat(char* strDestination, const char* strSource)
{
char *dest = strDestination + strlen(strDestination);
do
*dest++ = *strSource ;
while(*strSource++);

return strDestination;
}

char* SimStrCpy(char* strDestination, const char* strSource)
{
char *dest = strDestination;
do
*dest++ = *strSource ;
while(*strSource++);

return strDestination;
}

:mrgreen:

rezaTavak
شنبه 10 اردیبهشت 1384, 10:10 صبح
سلام

میدونید نشت حافظه چیه؟

C++Lover
شنبه 10 اردیبهشت 1384, 22:46 عصر
میدونید نشت حافظه چیه؟
http://www.barnamenevis.org/forum/viewtopic.php?t=23642
جناب rezaTavak عزیز نمی دانم منظور شما از این سوال چیست اما اگر در کدی که من نوشته ام ایرادی می‌بینید لطفا بگویید تا من هم یاد بگیرم.
ممنون
http://www.barnamenevis.org/forum/images/smiles/icon_wink.gif

rezaTavak
دوشنبه 12 اردیبهشت 1384, 12:52 عصر
سلام

شما بایستی اشارگری که به بلوکی از حافظه اشاره می کند را مطمئن شوید که از آن بلوک خارج نشوید. یعنی اول میزان حافظه تخصیص داده شده به اشاره گر بایستی چک شده و سپس در آن حافظه نوشت.

صبا
سه شنبه 13 اردیبهشت 1384, 13:57 عصر
سلام
می خواستم بدونم چطور میشه توی ویژوال ++C از gotoxy استفاده کرد که خطا نده .خطایی که میده اینه:
undeclared identifier
ممنون.

صبا
سه شنبه 13 اردیبهشت 1384, 13:58 عصر
سلام
می خواستم بدونم چطور میشه توی ویژوال ++C از gotoxy استفاده کرد که خطا نده .خطایی که میده اینه:
undeclared identifier
ممنون.

rezaTavak
سه شنبه 13 اردیبهشت 1384, 23:27 عصر
سلام

این خطا را وقتی میده که تابع تعریف نشده باشد.
در MSDN من دنبال gotoxy گشتم تا ببینم توی کدام هدر است اما نبود! توی سایتش هم!


:mad:

C++Lover
جمعه 16 اردیبهشت 1384, 23:35 عصر
سلام

شما بایستی اشارگری که به بلوکی از حافظه اشاره می کند را مطمئن شوید که از آن بلوک خارج نشوید. یعنی اول میزان حافظه تخصیص داده شده به اشاره گر بایستی چک شده و سپس در آن حافظه نوشت.

جناب rezaTavak عزیز سلام.

1. در این دو تایع هیچ گونه حافظه پویایی از سیستم گرفته نشده که پس دادن آن فراموش شده باشد (یعنی نشت حافظه یا Memory Leak وجود ندارد).

2. در این دو تابع - همانند توابع مشابه استاندارد C - این وظیفه برنامه‌ فراخوان است که فضای لازم برای رشته مقصد را فراهم کند.

3. یک اشاره‌گر به صورت پارامتر یک تابع دارید که ممکن است به یک حافظه ایستا یا پویا اشاره کند. حال شما بگویید چگونه می‌توان مقدار حافظه‌ای که این اشاره‌گر به آن اشاره می‌کند را فهمید؟ اگر این کار امکان‌پذیر می‌بود فرمایش شما کاملاْ صحیح بود.

rezaTavak
شنبه 17 اردیبهشت 1384, 11:59 صبح
سلام

دوست عزیز من منظورم دقیقا اینه که اگر آخر امر به NULL نرسه چی؟ یعنی اینکه در کد شما نشت از اینجا ناشی میشه که به NULL نرسه


من امتحان کردم و کامپیوترم قفل کرد! یعنی NULL نگذاشتم و قفل کرد.

من می خواهم بدانم یه چیزی مثل sizeof که اندازه را میده وجود داره که اول اندازه چک بشه؟

در ضمن هم تابع شما هم استاندارد سی (من با توربو سی امتحان کردم) در این موردی که گفتم قفل میکنه.

مهدی
شنبه 17 اردیبهشت 1384, 12:50 عصر
اولا این کاملا طبیعیه قفل کنه! ااگر رشته های استاندارد در C اشکال نداشت که دیگه توی ورژن هاج جدید نوع string اضافه نمیشد.

اصولا اگر ته رشته ای NULL نباشه (رشته استاندارد) هیچ راهی برای فهمیدن سایزش وجود نداره! شما با یه آرایه دارین کار میکنین! خوب آرایه هم توی C هیچ راهی برای اینکه بشه توی تابعی که بهش پاس داده شده سایزشو پیدا کرد نداره! پس یا باید سایزش رو پاس بدین یا یه جور دیگه بشه فهمید که در مورد رشته ها همون جور دیگه است :wink: اگر این NULL آخر هم حذف بشه اونوقت :sorry:

بدبخت
پنج شنبه 22 اردیبهشت 1384, 13:18 عصر
سلام وخسته نباشید
من میخواستم ببینم چه طوری میشه مثلث خیام پاسکال رو به صورت متساوی الساقین ایجاد کرد
من هر کار کردم نتونستم از حالت قائم زاویه به متساوی الساقین تبدیلش کنم شاید باgotoxy بشه اما چطوری؟
ممنون میشم اگه کمکم کنین