小编Aba*_*eno的帖子

C/C++中的sizeof char*数组

有很多类似的询问,但在我的情况下,我不明白什么是不起作用:

int mysize = 0;
mysize = sizeof(samplestring) / sizeof(*samplestring);
std::cout << mysize << '\n' << samplestring;
Run Code Online (Sandbox Code Playgroud)

这输出:

4

Press 'q' to quit.
Run Code Online (Sandbox Code Playgroud)

这怎么可能?4绝对不是这个字符串的大小.我甚至尝试了以下结果,结果相同:

mysize = sizeof(samplestring) / sizeof(samplestring[0]);

编辑:好的,这是声明:

char *samplestring = "Start."; 
Run Code Online (Sandbox Code Playgroud)

我在C++上,但我需要使用只接受char*的函数.稍后在代码中我将新字符串分配给该变量,例如:

samplestring = "Press 'r' for red text.";
Run Code Online (Sandbox Code Playgroud)

是的,编译器给了我警告,但我不知道如果我不能覆盖它们怎么能使用不同的字符串...

c c++ sizeof

8
推荐指数
3
解决办法
6万
查看次数

标签 统计

c ×1

c++ ×1

sizeof ×1