مشکل در بدست آوردن سایز آرایه بوسیله sizeof - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

مشکل در بدست آوردن سایز آرایه بوسیله sizeof

+1 امتیاز

سلام خسته نباشید من برای مححاسبه سایز آرایه این کد رو نوشتم ولی سایز اشتباه چاپ میشه مشکل از چیه ؟

#include <stdio.h>
#define N 10    
char str[N]={"abcdefg"};
int main(){
    printf("sizeof(&str2): %d bytes\n", sizeof(&str2));
    return 0;
}

 

سوال شده فروردین 10, 1393  بوسیله ی لارسون (امتیاز 63)   4 10 14
شما آرایه کاراکتریتون str ولی داخل main نوشتید (sizeof(&str2.در ضمن برای بدست آوردن سایز آرایه کاراکتری چرا از strlen استفاده نمی کنید؟

1 پاسخ

+3 امتیاز
 
بهترین پاسخ
سلام ،

سه تا مشکل اینجا هست:

۱-شما ارایه ای به نام str ساختی و میخواید سایز یک ارایه دیگه رو که تعریف نشده جایی استفاده کنید.

۲-در کل تابع sizeof برای شمردن تعداد بایت است ، نه برای شمردن تعداد اعضای آرایه ، مثلا خروجی این تابع از یک متغیر int عدد ۴ هست که یعنی int چهار بایتی هست .میتونید برای این کار از تابع strlen استفاده کنید.

۳-اگه از علامت & استفاده کنید به این شکلی که انجام دادین، فقط عدد ۸ خروجی میده که به دلیل تعداد بایت های یک اشاره گر هست.
پاسخ داده شده فروردین 10, 1393 بوسیله ی Elyas74 (امتیاز 1,144)   6 14 27
انتخاب شد فروردین 11, 1393 بوسیله ی لارسون
...