>我有一个作业,不允许我编辑主程序,但要释放 argv 副本的内存。 到目前为止,我找到的唯一解决方案是使用 argc 来确定需要释放多少块。 但是,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: %dn", count);
}
或者以紧凑的方式(感谢 chqrlie(:
#include <stdio.h>
int main(int argc, char **argv) {
int count;
for (count = 0; argv[count] != NULL; count++)
continue;
printf("Argc: %dn", count);
}