创建动态数组并初始化

D山姆

对于学校项目,我们必须在 c 中创建一个迷宫,我是该语言的初学者,所以我一开始就被困住了:动态创建一个数组......

我阅读了 malloc 和 calloc,并尝试使用它但没有成功......

这是我的代码:

/* define maze structure */

typedef struct _maze_t {
    int m, n;
    char **array;
} Maze;

void constructorArray(int m,int n)
{ 
    array = malloc(m * sizeof *array);

    for(i=0;i<m;i++){
        array[i]=(char *) malloc(n*sizeof(char)); 
    }
    array = calloc(m, sizeof *array);

    for (i=0; i<m; i++){
      array[i] = calloc(n, sizeof *(array[i]));
    }   
}
void createMaze(int ncolumn, int mlign)
{    
    int m=mlign;
    int n=ncolumn;
    int counter=0; 

    constructorArray(m,n) ;     

    char **array;            

    for(i=0;i<m;i++)
    {
        for(y=0;y<n;y++)
        {
            array[i][y]=counter;
            counter++;
        }
    }
}

int main()
{
    createMaze(100,100);    
    return 0;
}

有人可以向我解释如何正确地做吗?

保罗·奥格维

看来你有一些不正确的信念。

首先,您没有正确声明 C 函数:

constructorArray(m,n)

应该:

void constructorArray(int m, int n)

那么似乎您认为在 C 中会自动调用构造函数,但事实并非如此,因此简单地写入array[m][n]CreateMaze行不通的。你应该写:

char **array;    // it will be allocated dynamically

然后有你的功能:

char **constructorArray(int m, int n)
{ 
    char **array= malloc(m*sizeof(char *));

    for(int i=0; i<m; i++)
        array[i]= malloc(n*sizeof(char));

    return array;
}

您现在可以将其称为:

char **array= constructorArray(m, n);

注意:您对数组的使用表明整数数组可能更适合。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

初始化动态数组

来自分类Dev

在C中初始化动态数组

来自分类Dev

初始化动态创建的select2

来自分类Dev

初始化动态创建的 redux-form 字段

来自分类Dev

初始化非默认可构造对象的动态数组

来自分类Dev

C#动态数组初始化[优点?]

来自分类Dev

C ++静态和动态数组初始化

来自分类Dev

通过成员为动态数组的函数初始化结构

来自分类Dev

无法动态设置数组初始化程序的长度

来自分类Dev

如何使用默认值动态初始化数组?

来自分类Dev

在C中动态初始化字符串数组

来自分类Dev

在C ++中初始化多维动态数组

来自分类Dev

数组大小动态初始化示例

来自分类Dev

对象的动态数组 - 初始化方法之间的差异

来自分类Dev

在 C 中动态初始化数组时出错

来自分类Dev

猛击。初始化动态关联数组

来自分类Dev

尝试初始化动态数组时未处理异常

来自分类Dev

动态初始化对象

来自分类Dev

动态初始化常量

来自分类Dev

动态初始化代码

来自分类Dev

动态初始化JTree

来自分类Dev

动态初始化对象

来自分类Dev

如何创建和初始化不可变数组?

来自分类Dev

创建和初始化单元格数组

来自分类Dev

如何创建和初始化不可变数组?

来自分类Dev

创建对象时的初始化组件数组

来自分类Dev

初始化数组时创建的对象数 - Java

来自分类Dev

Ruby数组初始化

来自分类Dev

初始化结构数组