همونطور ک نام ارایه در ارایه ی یک بعدی اشاره گر به اولین عنصر ارایه هست در ارایه ی دوبعدی ]x[1 اشاره گری به سطر دوم ارایه است؟اگه اره پس چرا در کد زیر از عملگر&استفاده کرده؟
[char name[15][12]
[scanf("%s",&name[1
لطفا راهنمایی کنین ممنونم
همونطور ک نام ارایه در ارایه ی یک بعدی اشاره گر به اولین عنصر ارایه هست در ارایه ی دوبعدی ]x[1 اشاره گری به سطر دوم ارایه است؟اگه اره پس چرا در کد زیر از عملگر&استفاده کرده؟
[char name[15][12]
[scanf("%s",&name[1
لطفا راهنمایی کنین ممنونم
امیدوارم تا آلان جواب سوالتان را گرفته باشید.
قالب s% که در رشته scanf قرار دارد، یک اشاره گر به آدرس محل ذخیره سازی نیاز دارد. محل ذخیره سازی طبق نوشته شما می بایست در سطر دوم آرایه ی name باشد،
اگر & را همین آلان هم نگذارید مشکلی نیست و برنامه کاملا صحیح است.
اما اگر نباشد معمولا کامپایلر ها یک warning می دهند که آرایه داده شده ساختار string را ندارد. (در واقع کد در آنالیز استاتیک insecure دیده می شود) برای رفع مشکل یک & می تواند ساختار بعد دوم آرایه را ارایه کند (چون براکت دوم ارائه نشده است & برای رفع warning نیاز می شود)
خود این کار نیز (گذاشتن &) نیز warning دوم را می سازد، آن هم تبدیل یک آرایه (بعد دوم) به اشاره گر است لذا در صحیح ترین حالت می بایست اینگونه نوشته شود:
و در ساده ترین حالت :کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
در هر حالت از نظر syntax و اجرا هر 3 صحیح هستند.کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
موفق باشید.
هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)