小编Use*_*ied的帖子

如何报告引用c ++

有没有办法初始化对象的引用,然后在另一个对象上重新生成它而不会产生副本?我的意思是:

    std::vector < int >& vec1 = someVector;
    std::vector < int >& vec2 = someOtherVector:
    if ( someCondition )
    {
        vec2 = someVector;//copying occurs here
        vec1 = someOtherVector;
    }
Run Code Online (Sandbox Code Playgroud)

相反,我想要的是作为vec2对if 的引用someOtherVectorvec1引用,而不是它们成为副本.不幸的是,有些东西:someVectorsomeCondition

     if ( someCondition )
     {
         std::vector < int >& vec1 = someVector;
         std::vector < int >& vec2 = someOtherVector;
     }
     else
     {
         std::vector < int >& vec1 = someOtherVector;
         std::vector < int >& vec2 = someVector;         
     }
Run Code Online (Sandbox Code Playgroud)

由于引用的范围仅限于ifelse …

c++ alias reference

1
推荐指数
1
解决办法
91
查看次数

释放2-d char数组

使用此函数分配二维数组后:

char** make_matrix(int M, int N)
{
    char** MAT = (char**)malloc(M * sizeof(char));
    for (int i = 0; i < M; i++)
    {
        MAT[i] = (char*)malloc(N * sizeof(char));
    }
    return MAT;
}
Run Code Online (Sandbox Code Playgroud)

我发现试图free(M[0])导致断言失败.我能找到的关于释放2-d数组的所有内容都使用int而不是char.然而,charint以上代替每一个,断言失败消失.为什么这样,我怎么能释放整个二维阵列?

c malloc

-1
推荐指数
1
解决办法
93
查看次数

标签 统计

alias ×1

c ×1

c++ ×1

malloc ×1

reference ×1