簡體   English   中英

Visual Studio C6385 警告 c++

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM