首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么要将引用绑定到空指针错误?

为什么要将引用绑定到空指针错误?
EN

Stack Overflow用户
提问于 2022-06-03 09:39:09
回答 1查看 84关注 0票数 1

我正在解决以下Leetcode问题:

https://leetcode.com/problems/find-if-path-exists-in-graph/

我得到了以下错误:

代码语言: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

我的方法的代码:

代码语言:javascript
复制
class Solution {
public:
    void dfs(int *visited,int node,vector<vector<int>>&adj)
    {
        visited[node]=1;
        for(auto child:adj[node])
        {
            if(visited[child]==-1)
                dfs(visited,child,adj);
        }
    }
    bool validPath(int n, vector<vector<int>>& edges, int source, int destination) {
        vector<vector<int>>adj;
        for(auto it:edges)
        {
            adj[it[0]].push_back(it[1]);
            
        }
        int visited[n];
        for(int i=0;i<n;i++)
            visited[i]=-1;
        
        dfs(visited,source,adj);
        
        return visited[destination]==1;
    }
};

对于几乎每个图问题,我都会得到这个错误。有人能指出错误吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-03 10:03:50

在将元素添加到内部向量之前,应该调整adj的外部向量的大小。

代码语言:javascript
复制
bool validPath(int n, vector<vector<int>>& edges, int source, int destination) {
    vector<vector<int>>adj;
    for(auto& it:edges)
    {
        if (adj.size() < (it[0] + 1))
        {
            adj.resize(it[0] + 1);    
        }
        
        adj[it[0]].push_back(it[1]);
            
    }
    
    //Rest of the code  
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72487682

复制
相关文章

相似问题

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