永发信息网

c语言中如何定义动态指针数组

答案:4  悬赏:0  手机版
解决时间 2021-12-03 12:31
c语言中如何定义动态指针数组
最佳答案
1、使用malloc函数,先分配第一维的大小,然后再循环分配每一维的大小。
2、例程,分配3行4列二维数组:

#include 
#include 
int main()
{
    int **a;
    int i, j;
    a = (int**)malloc(sizeof(int*)*3);//为二维数组分配3行
    for (i = 0; i < 3; ++i){//为每列分配4个大小空间
        a[i] = (int*)malloc(sizeof(int)*4);
    }
    //初始化
    for (i = 0; i < 3; ++i){
        for (j = 0; j < 4; ++j){
            a[i][j] = i+j;
        }
    }
    //输出测试
    for (i = 0; i < 3; ++i){
        for (j = 0; j < 4; ++j){
            printf ("%d ", a[i][j]);
        }
        printf ("
");
    }
    //释放动态开辟的空间
    for (i = 0; i < 3; ++i){
        free(a[i]);
    }
    free(a);
    return 0;
}
全部回答
int size=5; //数组大小 自己可以随便定义 或是让用户输入
char *p=new char[size]; //或是int 等其他类型类似
之后把p当数组用就好,比如p[0]就是数组的0号元素

假设你想定义的数组是 int a[n],动态的定义方式是:

#include 

int main() {
    ...
    int *a = (int*)malloc(sizeof(int)*n);
    ...
}
可以这样子写
int n;
printf("请输入你想定义的数组的大小:\n");
scanf("%d",&n);
int *a = (int *)malloc(n*sizeof(int));//申请n个整形数据空间 ,头文件为stdlib.h/malloc.h
if(a == NULL)//申请失败返回-1
{printf("aply error\n"); return -1;}
memset(a, 0, n); //初始化申请到的空间为0,头文件为string.h
但是定义不了动态数组
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
表示很吵的四字成语
南京到滁州多远多少公里:距离87.7公里
圣经评价约伯是一个怎样的人
开车从固阳到呼市需要几个小时
脸上长了一颗黑色肉痣,以前倒是没什么,最多
阅读下面的文言文,完成小题。(9分,每小题3
为什么中国的台湾收不回来?
男生到了22岁,身高还可以长吗?
在山西太原最高的楼是哪一座了?有多少层了?
猞猁皮的猞猁皮检验标准
每12个羽毛球装一盒,50个羽毛球可以装满几盒?
焚书坑儒时孔子还活的吗
易视顿角膜塑形镜左右眼颜色
甲丶乙两桶油,从甲桶中倒出106千克放入乙桶
进口高档水果名称大全,分享下全国一手货源价
推荐资讯
有什么钻井技术比较好的公司吗?
佛山九腾公司在那?
在○里填上“>”、“<”或“=”.4000米○4
受当地权限是怎么回事啊
北京沃众国际贸易有限公司怎么样?
张碧晨 当爱来敲门mp3分享,谢谢各位度友
08款蒙迪欧可以改11款外观吗
魏都区许昌高中哪位知道具体地址啊
济南高新区属于哪个区
一升液化气能产生多少大卡热量
买2o16年一月二十一的火车票在网上买什么时候
网站接入PayPal收款有几种方式?是什么样的工
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?