[转]C语言构建动态数组完整实例

原文地址:http://www.jb51.net/article/52153.htm

本文以一个完整的实例代码简述了C语言构建动态数组的方法,供大家参考,完整实例如下:

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

#include <stdio.h>

#include <malloc.h>

int main(void) {

    int len;

    int * arr;

    printf("请输入数组长度:");

    scanf("%d", &len);

    arr = (int *)malloc(sizeof(int)*len);

    printf("请输入数组的值:");

    for ( int i = 0; i < len; i ++) {

        scanf("%d", &arr[i]);

    }

    for (int j = 0; j < len; j ++) {

        printf("%d:%d ", j , arr[j]);

    }

    free(arr);

    return 0;

}

运行结果如下:

?


1

2

3

4

5

E:\clearning\cpointer>gcc dynamicarray.c -o dm --std=c99

E:\clearning\cpointer>dm

请输入数组长度:5

请输入数组的值:1 2 3 4 5

0:1 1:2 2:3 3:4 4:5

时间: 2024-08-24 18:56:24

[转]C语言构建动态数组完整实例的相关文章

《C语言中动态数组的创建及引用》

C语言中动态数组的创建及引用 动态数组是相对于静态数组而言的,静态数组的长度是预定义好的,在整个程序中,一旦给定了数组大小后就无法改变,,而动态数组则不然,它可以根据程序需要重新指定数组的大小.动态数组的内存空间是由堆动态分配的,通过执行代码为其分配储存空间,只有程序执行到分配语句时,才为其分配储存空间. 对于动态数组,其创建比静态数组更麻烦一些,使用完必须由程序员自己释放,否则将引起内存泄漏,但是其使用非常灵活,能根据程序需要动态分配大小,因此相对于静态数组来说,使用动态数组的自由度更大. 对

c语言,动态数组

试着直接malloc一个2*3*4的空间来模拟数组: #include <stdio.h> #include <malloc.h> int main(void) { int*** pArr = NULL; pArr = (int ***)malloc(2*3*4*sizeof(int)); if(pArr == 0) { return -1; } memset(pArr, 0, 2*3*4*sizeof(int)); pArr[0][0][1] = 11; printf("

第二十二篇 玩转数据结构——构建动态数组

1.. 数组基础 数组就是把数据码成一排进行存放. Java中,数组的每个元素类型必须相同,可以都为int类型,string类型,甚至是自定义类型. 数组的命名要语义化,例如,如果数组用来存放学生的成绩,那么命名为scores就比较合适. 索引(index)是数组中的一个重要概念,它是我们给数组中的每个元素分配的编号,从0开始,依次递增.如果数组中存放了n个元素,第一个元素的索引是0,最后一个元素的索引是n-1. 通过索引,我们可以对数组中的元素进行快速访问,例如,我们访问索引为2的元素也就是数

c语言中动态数组的建立

一维动态数组的创建,这个比较简单,直接上代码 1 #define _CRT_SECURE_NO_DEPRECATE 2 #include<stdio.h> 3 #include<stdlib.h> 4 void createOneDimensionalVector(){ 5 int n, i; 6 int *arr; 7 scanf("%d",&n); 8 arr = (int*)malloc(sizeof(int)*n); 9 for (i = 0;

C语言动态数组空间分配问题

**动态数组起源:** 在实际的编程中,往往会发生这种情况,即所需的内存空间取决于实际输入的数据,而无法预先确定.对于这种问题,用静态数组的办法很难解决.为了解决上述问题,C语言提供了一些内存管理函数,这些内存管理函数结合指针可以按需要动态地分配内存空间,来构建动态数组,也可把不再使用的空间回收待用,为有效地利用内存资源提供了手段.动态数组的内存空间是从堆(heap)上分配(即动态分配)的.是通过执行代码而为其分配存储空间.当程序执行到这些语句时,才为其分配.程序员自己负责释放内存.对内存的动态

c语言实现动态指针数组Dynamic arrays

c语言实现动态数组. 基本原理:事先准备好一个固定长度的数组.如果长度不够的时候,realloc一块区域.另外:在数组元素减少的情况下,需要缩减数组长度. 主要接口: cp_bool DyArrayAppend(DyArray* pArr, void* pData)//加数据到数组末尾 cp_bool DyArrayExpand(DyArray* pArr, cp_int32 nNeed)//扩展数组 cp_bool DyArrayDelete(DyArray* pArr, cp_int32 n

线性表之顺序存储结构(C语言动态数组实现)

线性表的定义:N个数据元素的有限序列 线性表从存储结构上分为:顺序存储结构(数组)和 链式存储结构(链表) 顺序存储结构:是用一段连续的内存空间存储表中的数据 L=(a1,a2,a3....an) 链式存储结构:是用一段一段连续的内存空间存储表中每一行的数据,段与段之间通过一个引用(指针)相互连接来,形成一个链式的存储结构 看到顺序存储结构的图示,我们可能会马上联想到C语言的数组.是的,数组就是一种典型的顺序存储数据结构.下面我通过一个实例,来实现对顺序存储结构中的数据增.删.改.查的操作. 首

C语言数组:C语言数组定义、二维数组、动态数组、字符串数组

1.C语言数组的概念 在<更加优美的C语言输出>一节中我们举了一个例子,是输出一个 4×4 的整数矩阵,代码如下: #include <stdio.h> #include <stdlib.h> int main() { int a1=20, a2=345, a3=700, a4=22; int b1=56720, b2=9999, b3=20098, b4=2; int c1=233, c2=205, c3=1, c4=6666; int d1=34, d2=0, d3

C语言 动态数组实现

一.概述 C语言是不能直接定义动态数组的,数组必须在初始化时确定长度. 如果要在程序运行时才确定数组的长度,就需要在运行的时候,自己去向系统申请一块内存用动态内存分配实现动态数组. 二.动态内存分配函数 1.malloc()函数 void *malloc(unsigned int size) 分配size个字节的内存空间,返回地址的指针,如果内存不够分,就返回空指针NULL. 注意:返回的指针是没有类型的,所以要使用得强制类型转换. 2.calloc()函数 void *calloc(unsig