动态数组创建总结

动态数组创建总结

有些人喜欢c和c++混编,但我个人感觉c++很强大,很多东西用起来很方便,但我目前为止用的还是纯c:

下面分c和c++来总结一下动态数组的创建:

c:

一维动态数组的创建

#include <stdio.h>
#include <stdlib.h>
int main()
{
int n;
int *shzu
scanf(“%d”, &n);
shzu= (int *) malloc(sizeof(int) * n);
… …
free(shzu);
return 0;
}
 
动态创建和释放二维数组
 

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

#define ROW 5 
#define COL 4 
  
main(){ 
    int i; 
    int **arr; 
    arr=(int **)malloc(ROW*sizeof(int*)); 
    for(i=0;i<ROW;++i) 
        arr[i]=(int*)malloc(COL*sizeof(int)); 
      
    printf("%d\n",arr[ROW-1][COL-1]); 
      
    for(i=0;i<ROW;++i) 
        free(arr[i]); 
    free(arr); 
}

使用calloc申请内存时,内存会清0,而malloc并不进行这项工作,所以打印数组元素时得到的随机值。

数组清零时要用memset(shuzu,0,4*(num+1));不能再用memset(shuzu,0,sizeof(shuzu));否则出错


c++:


#include<iostream>
using namespace std;


int main(int i,int j)
{
while(cin>>num)
{
int* shuzu
=new int[num+1];  


memset(shuzu,0,4*(num+1));  //由于shuzu申请的是动态内存,用sizeof计算长度会出错
                         //这里要用 类型大小*个数,这里为 int*(num+1) , int大小为4

delete shuzu;
}

return 0;
}


剩下的后续再更新。。。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值