[英]Visual Studio C6385 warning c++
由於變量a
,我收到以下警告:
C6385: 從 'z' 讀取無效數據:可讀大小為 'a*4' 字節,但可以讀取 '12' 字節
另外,我的IDE的return
line是綠色的,請問怎么解決?
int function(int a)
{
int* z = new int[a];
return z[2];
}
我正在使用 Microsoft Visual Studio 16.6.2。
我不知道你為什么使用動態 memory 分配。 我建議避免所有評論的問題是使用向量
int function(int a)
{
std::vector<int> z(std::max(3, a));
return z[2];
}
它將初始化元素,清理 memory 並保證大小。 另一種方法是在元素不存在時拋出
int function(int a)
{
std::vector<int> z(a);
return z.at(2);
}
要么
int function(int a)
{
if (a < 3) throw;
std::vector<int> z(a);
return z[2];
}
我想通了:添加if (a < 3) a = 3;
實際上會完成這項工作。 沒有警告了。 無論如何感謝您的幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.