首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将错误引用绑定解析为值类型的空指针

如何将错误引用绑定解析为值类型的空指针
EN

Stack Overflow用户
提问于 2021-05-21 22:19:17
回答 1查看 68关注 0票数 0
代码语言:javascript
复制
 //this is my code that i have written 
vector<vector<int>> generate(int numRows) {

        vector<vector<int>>ans;

        ans[0].push_back(1);
        if(numRows==1) return ans;

        ans[1].push_back(1);
        ans[1].push_back(1);

        if(numRows==2) return ans;

        for(int i=2;i<=numRows-1;i++){
            for(int j=0 ; j<= ans [i] . size() - 2 ; j++){

                int x= ans [i][j] + ans [i][j+1];
                ans [i+1].push_back(x);
            }
            ans [i+1].insert(ans [i+1].begin(),1);
            ans [i+1].insert(ans [i+1].end(),1);
        }

        return ans;
}

这段代码显示下面的错误。

代码语言:javascript
复制
Line 1034: Char 9: runtime error: reference binding to null pointer of type 'std::vector<int, std::allocator<int>>' (stl_vector.h)
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_vector.h:1043:9
EN

回答 1

Stack Overflow用户

发布于 2021-05-21 22:59:39

因为vector在内部将数据存储在堆上,堆可以根据您的使用情况而增大或缩小。但在本例中,您创建了一个空的vector,因此它不会分配任何内存。为了避免这个错误,你必须向向量构造函数提供大小,或者在你想要使用的每个索引上返回空向量。因此,您可能需要执行以下操作:

代码语言:javascript
复制
    std::vector<vector<int>> ans(numRows);
    ans[0].push_back(1);

这将会起作用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67638686

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档