相关疑难解决方法(0)

如何找到'sizeof'(指向数组的指针)?

首先,这里是一些代码:

int main() 
{
    int days[] = {1,2,3,4,5};
    int *ptr = days;
    printf("%u\n", sizeof(days));
    printf("%u\n", sizeof(ptr));

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

有没有办法找出ptr指向的数组的大小(而不是仅仅给出它的大小,在32位系统上是4个字节)?

c arrays pointers sizeof

288
推荐指数
8
解决办法
35万
查看次数

在这种情况下如何获取char数组大小?

我对此表示怀疑:在这种情况下,如何获取char数组的大小:

#include<stdio.h>

void f(char * x)
{
printf("Size %d\n", sizeof(x)/sizeof(char));
}

main()
{
char x[5] = {'a', 'e', 'i', 'o', 'u'};
f(&x[0]);
}
Run Code Online (Sandbox Code Playgroud)

与我的期望相反,我得到的是8分而不是5分甚至6分。这是怎么了?

谢谢!

c arrays sizeof char

3
推荐指数
1
解决办法
5080
查看次数

标签 统计

arrays ×2

c ×2

sizeof ×2

char ×1

pointers ×1