0

c++ 中的 sizeof() 函数在函数内部给了我不同的大小,并且在主函数中给了我不同的大小。知道为什么吗?

void createPacket(char packet[]){
    int size = sizeof(packet);
    printf("%d\n", size);
}

int main(){
    char packet[PKTSIZE];
    createPacket(packet);
    int size = sizeof(packet);
    printf("%d\n", size);
}

我期待

9
9

但我得到

8
9

知道为什么吗?

4

1 回答 1

0

如果 PKTSIZE 为 9,并且如果您在 x64 平台上编译它,那么您将在 main 中获得数组大小,在函数中获得指针大小。

于 2013-07-17T04:00:00.117 回答