我一直在尝试获取 argv 中所有字符串的长度,而无需在 C/C++ 中迭代 argv。
我知道你可以这样做:
for (; argv; ++argv, length += strlen(*argv));
是否有可能用地址来做,或者不管我做什么,它最多只是 sizeof(char) * argc。
我尝试过这样的事情:
uintptr_t length = argv[argc] - argv[0]
在这个例子中,我想要获取 argv[argc] 的地址而不是它指向的东西(定义为 NULL)和 argv[0] 的地址。理论上,如果你得到这两个指针的地址,你应该得到 strlen(argv[0]) + strlen(argv[1]) ... + strlen(argv[argc-1])
的长度,对吗?