对于同样的程序,c ++ 11返回2 1 2,但对于c ++ 14,返回2 1 1给我.我很迷惑..
#include <iostream>
#include <string>
using namespace std;
int main()
{
char a[2];
cout << sizeof(a) << endl;
std::string b("a");
cout << b.size() << endl;
char c[b.size() + 1];
cout << sizeof(c) << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
以下行不是标准C++.
char c[b.size() + 1];
Run Code Online (Sandbox Code Playgroud)
一些编译器支持它作为扩展.预计他们不会确认任何标准.当他们评估时,他们可能会从他们的实施角度返回任何有意义的东西sizeof(c).
| 归档时间: |
|
| 查看次数: |
357 次 |
| 最近记录: |