小编Ped*_* R.的帖子

将三维数组传递给C中的函数

我用来编程FORTRAN,但我决定学习CC++.我从C语言开始,我从未使用的一件事是指针,因为FORTRAN通过引用传递值.我构建了下面的示例代码,以了解指针如何与多维数组一起使用:

#include <stdio.h>
#include <stdlib.h> 

#define DIM1 3
#define DIM2 2 
#define DIM3 4

void display3DArray1(int, int , int n, int (*arr)[][n]);
void display3DArray2(int rows, int cols1, int cols2,int arr[][cols1][cols2]);

int main(void)
{
    int matrix3D[DIM1][DIM2][DIM3] = {
        {{1, 2, 3, 4}, {5, 6, 7, 8}},
        {{9, 10, 11, 12}, {13, 14, 15, 16}},
        {{17, 18, 19, 20}, {21, 22, 23, 24}}
    };
    int (*pmatrix3D)[DIM2][DIM3] = matrix3D;

    display3DArray1(DIM1, DIM2, DIM3,pmatrix3D); 
    display3DArray2(DIM1, …
Run Code Online (Sandbox Code Playgroud)

c arrays

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

删除期间出现分段错误 []

我正在构建一个游戏,每次创建玩家时,我都需要将玩家存储在动态数组中。我编写了一小段代码来尝试它,segmentation fault当我尝试在delete桌子上插入第三个玩家时,我得到了 。我只是不明白为什么会发生这种情况:该header文件是:

    #include <iostream>
    #include <string>
    #include <vector>
    
    using namespace std;
    
    class Player

{

    private:
        string PlayerName;
        int PlayerScore;
    public:
        Player();       
        Player(string name, int s);     
        ~Player() {};       
        string getPlayerName()  {return PlayerName;}
        int getPlayerScore() {return PlayerScore;}
        void setPlayerName(string name){PlayerName = name;}
        void setPlayerScore(int score){PlayerScore = score;}
};

class Game
{

    private:
        Player NewPlayer;
        int NPlayers;
        Player* PlayerList;
        //vector <Player> PlayerList2;
    
        
    public:
        Game();
        ~Game();
        void setNewPlayer(string, int); 
        void resizePlayerList();
        void PrintList();   
};
Run Code Online (Sandbox Code Playgroud)

文件class: …

c++ c++11

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

标签 统计

arrays ×1

c ×1

c++ ×1

c++11 ×1