你可以使用sizeof()来打印char *指向的数组的大小吗?

时间:2014-01-10 11:33:35

标签: c++

char *one = new char[1024];
char one1[] = "hello";
one = hello;
cout << sizeof(one) << endl;

我真的希望最后一行输出sizeof(one1),但我知道它会立即输出指针的大小为4或8.有没有办法从中提取数组的sizeof()指向第一个字母的指针?

3 个答案:

答案 0 :(得分:1)

  

有没有办法从指向第一个字母的指针中提取数组的sizeof()

没有

不幸的是,你必须明确地跟踪它,并且可能传递长度作为函数等的额外参数。

您已将问题标记为“C ++”。在C ++中,我们通常使用std::vectorstd::string或其他容器类来跟踪它。

答案 1 :(得分:0)

无法做到这一点 - 如果只需要std::vector,可以使用std::stringchar

答案 2 :(得分:0)

没有

该信息在运行时根本不可用。指针只是一个指针,没有任何地方可以提供额外的信息(关于指向的区域)。