如何从C中的** argv派生argc

时间:2018-09-23 21:52:30

标签: c

我有一项作业,不允许我编辑主程序,但要释放argv副本的内存。到目前为止,我发现的唯一解决方案是使用argc确定需要释放多少块。但是,argc不是释放程序的输入,而是argv的副本。反正有从** argv派生argc吗?

1 个答案:

答案 0 :(得分:-1)

这应该可以解决问题:

#include <stdio.h>

int main(int argc, char ** argv){
    int count = 0;

    for(int i = 0; 1; i++)
        if(argv[i] == 0) break;
        else count++;

    printf("Argc: %d\n", count);
}

或者以一种紧凑的方式(感谢chqrlie):

#include <stdio.h>

int main(int argc, char **argv) {
    int count;
    for (count = 0; argv[count] != NULL; count++)
        continue;
    printf("Argc: %d\n", count);
}