gpt4 book ai didi

c - 为什么 sizeof() 对指针数组不起作用?

转载 作者:行者123 更新时间:2023-11-30 16:44:09 25 4
gpt4 key购买 nike

int main()
{
int *pArray;
int array[10];

pArray = (int*)malloc( sizeof *pArray * 10 );

int n = sizeof(pArray);
int m = sizeof(array);

printf("pArray size:\t%d\tarray size:\t%d\n", n, m);

return 0;
}

在上面的代码中,使用 malloc() 分配大小的指针数组的 sizeof() 操作的结果是值 4,即单个元素的大小。然而,sizeof() 函数对于普通数组返回正确的值 40。

我总是听到“数组只是 C 中的指针”。如果数组和指针在功能上相同,为什么 sizeof() 不适用于指针数组?

最佳答案

确实有效。宏

sizeof(pArray)

返回指针 pArray 的大小(在 32 位处理器上为 4 个字节,在 64 位处理器上为 8 个字节。您的引用“数组只是 C 中的指针”并不完全正确。

这可能有帮助:https://en.wikibooks.org/wiki/C_Programming/Pointers_and_arrays

关于c - 为什么 sizeof() 对指针数组不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44689288/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com