我有一个任务不允许我编辑主程序,但可以释放 argv 副本的内存。到目前为止,我找到的唯一解决方案是使用 argc 来确定需要释放多少 block 。但是,argc 不是释放程序的输入,而是 argv 的副本。有没有办法从 **argv 派生 argc?
最佳答案
这应该可以解决问题:
#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);
}
关于c - 如何从 C 中的 **argv 派生 argc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52470579/