Length of array in function argument

前端 未结 8 1897
终归单人心
终归单人心 2020-11-21 23:05

This is well known code to compute array length in C:

sizeof(array)/sizeof(type)

But I can\'t seem to find out the length of the array pass

8条回答
  •  时光说笑
    2020-11-21 23:50

    Regarding int main():

    According to the Standard, argv points to a NULL-terminated array (of pointers to null-terminated strings). (5.1.2.2.1:1).

    That is, argv = (char **){ argv[0], ..., argv[argc - 1], 0 };.

    Hence, size calculation is performed by a function which is a trivial modification of strlen().

    argc is only there to make argv length calculation O(1).

    The count-until-NULL method will NOT work for generic array input. You will need to manually specify size as a second argument.

提交回复
热议问题