在我的程序中,我在类的一个函数中有这两行:
char* chunkToReturn = nullptr;
std::cout << chunkToReturn << std::endl;
但是当我运行我的程序时,我会在&#39; cout&#39;线, 这是否意味着问题与类本身的地址有关?
答案 0 :(得分:3)
问题在于使用已初始化为char*
的{{1}}类型的变量。
使用时
nullptr
cout << chunkToReturn
需要是一个以空字符结尾的字符串。由于在您的情况下不是这样,您的程序具有未定义的行为。
答案 1 :(得分:2)
指向char
的指针被视为C样式字符串,并且输出所有字符直到找到nul。
解决方案是将指针强制转换为void *
:
std::cout << (void *) chunkToReturn << std::endl;