| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3465 人关注过本帖
标题:给二维数组或多维数组分配内存, 该怎么写和应用?
只看楼主 加入收藏
随风飘荡
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:3
帖 子:208
专家分:598
注 册:2011-9-9
收藏
得分:0 
分两步,使用按正常方式即可
设要分配int[4][5]的数组
程序代码:
int **p = (int **)malloc(sizeof(int *) * 4); 
for (i = 0; i < line; i++) 
   *(p + i) = (int *)malloc(sizeof(int) * 5); 


2016-06-14 17:23
yuantkong
Rank: 2
等 级:论坛游民
威 望:3
帖 子:82
专家分:86
注 册:2016-5-17
收藏
得分:0 
回复 11楼 随风飘荡

想要给一个二维数组分配一个内存, 分配好的内存该如何编写使用,
现在程序编写的程序是这样,但是无法输入。 现在感觉二维数组指针使用好乱


#include "stdafx.h"
#include "stdlib.h"
#define col 5
#define row 3

void *my_calloc(void *p, int i, int j)
{
    p = (int *)calloc(i, j * sizeof(int));
    if (NULL == p)
    {
        printf("error");
        exit(0);
    }
    return p;
}

void my_free(void *p)
{
    free(p);
    p = NULL;

}
int main()
{
    int a[row][col] = { 0 };
    int *q = *a;
    int i = 0;
    int j = 0;
    q= (int*)my_calloc(a, row, col);


    for (i = 0; i < row; i++)
    {
        for (j = 0; j < col; j++)
        {
            scanf_s("%d", *q++);
        }
    }

    for (i = 0; i < row; i++)
    {
        for (j = 0; j < col; j++)
        {
            printf("%d ", *q++);
        }
        printf("\n");
    }

    my_free(q);

    return 0;
}
2016-06-14 18:25
hykj9495
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:796
专家分:1441
注 册:2016-6-6
收藏
得分:0 
抄书中
如何在一维存储器中存放二维数组,有两种方式:一种是按行排列,即放完一行后顺次放入第二行。另一种是按列排列,即放完一列后再依次放入第二列。在C语言中是按行排列的。数组是一种构造类型的数据。二维数组可以看作是由一维数组嵌套,就而构成的,设一维数组的每个元素又都是一个数组就组成了二维数组,当然前提是各元素的类型必须相同。根据这样的分析,一个二维数组也可以分解为多个一维数组。C语言允许这种分解

慢慢调试
2016-06-26 18:31
快速回复:给二维数组或多维数组分配内存, 该怎么写和应用?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.033767 second(s), 11 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved