如果我有一个字符串地址是

(DWORD*)PEFile->ExportTable.pNames[i];

我如何打印该字符串,请注意我不知道该字符串的大小

最佳答案

这有点难以解释,因为它含糊不清,但是...

如果.pNames本身是一个以null终止的字符数组(c字符串)或C++字符串,请执行以下操作:

std::cout << (DWORD*)PEFile->ExportTable.pNames;

如果.pNames [i]是一个以空字符结尾的字符数组(c字符串),请执行以下操作:
std::cout << (DWORD*)PEFile->ExportTable.pNames[i];

如果它是一个非空的终止字符数组,并且您不知道大小,那就麻烦了。

如果您具有字符数组的大小,但是它不是以null终止的,则可以对其进行迭代并打印。 std::copy(PEFile->ExportTable.pNames[i], PEFile->ExportTable.pNames[i] + length, std::ostream_iterator<char>(std::cout, ""));将在一行中为您完成此操作。

关于c++ - C++使用指针地址打印Char,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12609999/

10-13 08:27