PDA

View Full Version : مشکل با توابع کار با رشته



vasilopita
جمعه 05 اسفند 1390, 17:59 عصر
سلام دوستان. من با توابع کار با رشته مشکل پیدا کردم. مثلا وقتی می نویسم‌:
strcat("string1","string2")
برنامه کامپایل میشه ولی یهو از برنامه می پره بیرون. اولا لطفا بگید چه راه حلی وجود داره، بعد اینکه چرا این مشکل بوجود میاد؟!!!!!
ممنون

shahmohammadi
جمعه 05 اسفند 1390, 18:25 عصر
سلام.
پارامتر اول بايد آرايه اي از كاراكتر ها باشه باشه نه ثابت(""ها ثابت هستند). به اين دليل كه قراره اطلاعاتي توش ذخيره بشه. همچنين بايد به حد كافي فضا داشته باشه تا پر نشه چون اگه پر شه برنامه از قسمت بيرون آرايه استفاده مي كنه كه اين باعث رخ دادن يك استثنا مي شه و از برنامه خارج مي شه.

vasilopita
جمعه 05 اسفند 1390, 22:06 عصر
ممنون از جوابتون. مگه یه رشته (* char) یه جورایی آرایه نیست ؟؟ راهی وجود نداره که بجای آرایه از رشته استفاده کرد؟؟ آخه اینجوری که حافظه ی پویا نداریم دیگه!

shahmohammadi
جمعه 05 اسفند 1390, 22:38 عصر
"string1" كه متغير نيست بخواهيد توش يه چيزي ذخيره كنيد. همونطور كه در متغير a كه از نوع اينت هست مي شه عدد ذخيره كرد ولي در 12 نمي شه.
char * هم همون آرايه هست.