C++ C++;使用指针地址打印字符

C++ C++;使用指针地址打印字符,c++,c,pointers,C++,C,Pointers,如果我有一个地址字符串是 (DWORD*)PEFile->ExportTable.pNames[i]; 如何打印该字符串,请注意,我不知道该字符串的大小如果该字符串是,您只需使用: std::cout << PEFile->ExportTable.pNames[i] << std::endl; std::cout ExportTable.pNames[i]这有点难以解释,因为它模棱两可,但是 if .pNess本身是一个空终止字符数组(C字符串)或C++

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

(DWORD*)PEFile->ExportTable.pNames[i];
如何打印该字符串,请注意,我不知道该字符串的大小

如果该字符串是,您只需使用:

std::cout << PEFile->ExportTable.pNames[i] << std::endl;

std::cout ExportTable.pNames[i]这有点难以解释,因为它模棱两可,但是

if .pNess本身是一个空终止字符数组(C字符串)或C++字符串,只需执行:

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

std::cout << (DWORD*)PEFile->ExportTable.pNames;
std::cout << (DWORD*)PEFile->ExportTable.pNames[i];
std::cout ExportTable.pNames[i];
如果它是一个非空的terimnated字符数组,而您不知道其大小,那么您就有麻烦了


如果您有字符数组的大小,并且它不是以null结尾的,那么您可以迭代它并打印<代码>标准::复制(PEFile->ExportTable.pNames[i],PEFile->ExportTable.pNames[i]+长度,标准::ostream\u迭代器(标准::cout,”)可以在一行中为您做到这一点。

如果您真的认为这是C而不是C++:

printf("%s", PEFile->ExportTable.pNames[i]);

这实际上是指向DWORD的指针。
PEFile->ExportTable.pNames的类型是什么?请注意,转换为
DWORD*
可能会让您打印字符串的地址,而不是其内容。