#include<iostream>
using namespace std;
int main() {
int buf[2];
int *p=new (buf) int(2);
int *q=new (buf 1) int(6);
for(int i=0;i<2;i )
cout<<buf[i]<<" ";
return 0;
}
我正在嘗試使用以下示例放置新運算子。對于上面的代碼,我得到的輸出為:
trial.cpp:7:20: warning: placement new constructing an object of type 'int' and size '4' in a region of type 'int [2]' and size '0' [-Wplacement-new=]
int *q=new (buf 1) int(6);
2 6
為什么我會收到 *q 的警告?據我了解 p 和 q 是 2 個指標,指向 buf 陣列中的 2 個不同塊。如果我錯了,請糾正我。
uj5u.com熱心網友回復:
這是一個影響版本 8 到 10 并在 11 中修復的 GCC 錯誤,請參閱錯誤報告。
代碼很好,警告是誤報。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/425200.html
上一篇:函式完成后用作映射中值的指標損壞
下一篇:關于警告選項“不兼容的指標型別”
