char *one = new char[1024];
char one1[] = "hello";
one = hello;
cout << sizeof(one) << endl;
我真的希望最后一行输出sizeof(one1),但我知道它会立即输出指针的大小为4或8.有没有办法从中提取数组的sizeof()指向第一个字母的指针?
答案 0 :(得分:1)
有没有办法从指向第一个字母的指针中提取数组的
sizeof()
?
没有
不幸的是,你必须明确地跟踪它,并且可能传递长度作为函数等的额外参数。
您已将问题标记为“C ++”。在C ++中,我们通常使用std::vector
,std::string
或其他容器类来跟踪它。
答案 1 :(得分:0)
无法做到这一点 - 如果只需要std::vector
,可以使用std::string
或char
。
答案 2 :(得分:0)
没有
该信息在运行时根本不可用。指针只是一个指针,没有任何地方可以提供额外的信息(关于指向的区域)。