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