用指针获取argv中所有字符串的长度

问题描述 投票:0回答:0

我一直在尝试获取 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]) 的长度,对吗?

c++ c pointers memory argv
© www.soinside.com 2019 - 2024. All rights reserved.