小试 malloc

众所周知的动态分配内存函数,从来没切身的用过和感受过,只会在别人的编写代码中看到的。今天做了一道题中正好用到,便小琢磨了一番。

如:

          1

          1     1

          1     2     1

          1     3     3     1

           ……

这个你要怎么分配存储呢,当然你可以选择传统的办法,就是选一个够大的2维数组将它存进去,没有问题。但是对一些资源紧缺的地方来用,估计就望尘莫及了,来看吧。

 

          #define   MAX   100

          {  int  *X[MAX] ,  i ,  j ;                                          //定义数组指针

                for (  i=0 ;  i<n ;  i++ )

                 {  X[i]=(int *)malloc(sizeof(int)*(i+1)) ;         //第2个*是乘号,非指向。因为malloc的返回值是个字符,所以需要强制转换成指向数据指针。当i=0时,也就是第一行只分配两个字节的空间。i=2时,分配4个字节。//  

                    {  for( j=0 ;  j<=i ; j++ )

                         { if ( j== 0 || j== i )     *(X[i] + j)=1 ;

                            else   *(X[i] + j)= *(X[i-1] + j) + *(X[i-1] + j-1) ;

                             printf (“% d”,* (X[i] + j) ) ;

                           }

 

                             printf("/n") ;

                  }

                  

            }  

 

         

 

很简单吧,因为博主也刚刚起步。

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值