打印指针会导致分段错误

时间:2018-01-18 23:06:04

标签: c++ pointers segmentation-fault

在我的程序中,我在类的一个函数中有这两行:

    char* chunkToReturn = nullptr;
    std::cout << chunkToReturn << std::endl;

但是当我运行我的程序时,我会在&#39; cout&#39;线, 这是否意味着问题与类本身的地址有关?

2 个答案:

答案 0 :(得分:3)

问题在于使用已初始化为char*的{​​{1}}类型的变量。

使用时

nullptr

cout << chunkToReturn 需要是一个以空字符结尾的字符串。由于在您的情况下不是这样,您的程序具有未定义的行为。

答案 1 :(得分:2)

指向char的指针被视为C样式字符串,并且输出所有字符直到找到nul。

解决方案是将指针强制转换为void *

std::cout << (void *) chunkToReturn << std::endl;