C语言完美实现动态数组代码分享
我们知道,C语言中的数组大小是固定的,定义的时候必须要给一个常量值,不能是变量。
这带来了很大的不便,如果数组过小,不能容下所有数组,如果过大,浪费资源。
请实现一个简单的动态数组,能够随时改变大小,不会溢出,也不会浪费内存空间。
下面的代码实现了简单的动态数组:
#include <stdio.h> #include <stdlib.h> int main() { //从控制台获取初始数组大小 int N; int *a; int i; printf("Input array length:"); scanf("%d",&N); //分配空间 a=(int *)calloc(N,sizeof(int)); //填充数据 for(i=0;i<N;i++){ a[i]=i+1; printf("%-5d",a[i]); if((i+1)%10==0){ printf("\n"); } } //释放内存 free(a); a=NULL; printf("\n"); return 0; }
运行结果:
Input array length:20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
相关推荐
-
深入分析C语言中结构体指针的定义与引用详解
指向结构体类型变量的使用首先让我们定义结构体:struct stu{char name[20];long number;float score[4];} ;再定义指向结构体类型变量的指针变量:struct stu *p1, *p2 ;定义指针变量p 1.p 2,分别指向结构体类型变量.引用形式为:指针变量→成员:[例7-2] 对指向结构体类型变量的正确使用.输入一个结构体类型变量的成员,并输出. 复制代码 代码如下: #include <stdlib.h> /*使用m a l l o c (
-
基于C语言实现的贪吃蛇游戏完整实例代码
本文以实例的形式讲述了基于C语言实现的贪吃蛇游戏代码,这是一个比较常见的游戏,代码备有比较详细的注释,对于读者理解有一定的帮助. 贪吃蛇完整实现代码如下: #include <graphics.h> #include <conio.h> #include <stdlib.h> #include <dos.h> #define NULL 0 #define UP 18432 #define DOWN 20480 #define LEFT 19200 #defi
-
C语言动态数组的使用实现代码
C语言动态数组 从键盘读入n个整数,使用动态数组存储所读入的整数,并计算它们的和与平均值分别输出.要求尽可能使用函数实现程序代码.平均值为小数的只保留其整数部分. 样例输入: 5 3 4 0 0 2 样例输出: 9 1 样例输入: 7 3 2 7 5 2 9 1 样例输出: 29 4 代码如下: #include<stdio.h> int addAll(int a[],int N); int aveFun(int sum,int n); int main(){ int N; int sum
-
c语言字符数组与字符串的使用详解
1.字符数组的定义与初始化字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素.char str[10]={ 'I',' ','a','m',' ','h','a','p','p','y'};即把10个字符分别赋给str[0]到str[9]10个元素如果花括号中提供的字符个数大于数组长度,则按语法错误处理:若小于数组长度,则只将这些字符数组中前面那些元素,其余的元素自动定为空字符(即 '\0' ). 2.字符数组与字符串在c语言中,将字符串作为字符数组来处理.(c++中不是)在实际应用
-
C语言十进制转二进制代码实例
用C语言实现将十进制转化为二进制,并统计转换后的二进制码中1的个数. #include <stdio.h> int binaryNum[16]; //存放转换后得到的二进制码 int count=0; //计数十进制整数被2除的次数 int oneCount=0; //得到的二进制码中1的个数 void main(){ int num; printf("输入一个十进制的整数:"); scanf("%d",&num); while( (num/2)
-
c语言冒泡排序法代码
总在写 总在错, 面试也还忘记 学习就是这么个过程, 温故才知新, 望自己谨记 忘记不要紧 复习就好 //排序是有很多种方法的 ,完成从小到大的排列 复制代码 代码如下: #include <stdio.h>void sort(int *a,int len){int i=0; int j; int t; for(i=0;i<len;i++) { for(j=0;j<len-i-1;j++) { if(a[j]>a[
-
C语言中system()函数的用法总结
system()函数功能强大,很多人用却对它的原理知之甚少先看linux版system函数的源码: 复制代码 代码如下: #include <sys/types.h>#include <sys/wait.h>#include <errno.h>#include <unistd.h> int system(const char * cmdstring){ pid_t pid; int status; if(cmdstring == NULL){
-
c语言动态数组示例
复制代码 代码如下: #include <stdio.h>#include <stdlib.h> int main(){ //从控制台获取初始数组大小 int N; printf("Input array length:"); scanf("%d",&N); printf("\n"); //分配空间 int *a; a=(int *)calloc(N,sizeof(int)
-
C语言构建动态数组完整实例
本文以一个完整的实例代码简述了C语言构建动态数组的方法,供大家参考,完整实例如下: #include <stdio.h> #include <malloc.h> int main(void) { int len; int * arr; printf("请输入数组长度:"); scanf("%d", &len); arr = (int *)malloc(sizeof(int)*len); printf("请输入数组的值:&qu
-
使用C语言实现vector动态数组的实例分享
下面是做项目时实现的一个动态数组,先后加入了好几个之后的项目,下面晒下代码. 头文件: # ifndef __CVECTOR_H__ # define __CVECTOR_H__ # define MIN_LEN 256 # define CVEFAILED -1 # define CVESUCCESS 0 # define CVEPUSHBACK 1 # define CVEPOPBACK 2 # define CVEINSERT 3 # define CVERM 4 # define EXP
-
linux根据pid获取进程名和获取进程pid(c语言获取pid)
Liunx中通过进程名查找进程PID可以通过 pidof [进程名] 来查找.反过来 ,相同通过PID查找进程名则没有相关命令.在linux根目录中,有一个/proc的VFS(虚拟文件系统),系统当前运行的所有进程都对应于该目录下的一个以进程PID命名的文件夹,其中存放进程运行的N多信息.其中有一个status文件,cat显示该文件, 第一行的Name即为进程名. 打开stardict程序,进程名为stardict: shell中分别根据Pid获取进程名.根据进程名获取Pid 1)查找stard
-
C语言运算符优先级列表(超详细)
每当想找哪个运算符优先级高时,很多时候总是想找的就没有,真让人气愤!现在,终于有个我个人觉得非常全的,分享给大家,欢迎拍砖! C语言运算符优先级 优先级 运算符 名称或含义 使用形式 结合方向 说明 1 [] 数组下标 数组名[常量表达式] 左到右 -- () 圆括号 (表达式)/函数名(形参表) -- . 成员选择(对象) 对象.成员名 -- -> 成员选择(指针) 对象指针->成员名 -- 2 - 负号运算符 -表达式 右到左 单目运算符 ~ 按位取反运算符 ~表达式 ++ 自增运算符 +
-
C语言socket编程开发应用示例
实现步骤: 1. Server端 复制代码 代码如下: #include <stdio.h> //用于printf等函数的调用#include <winsock2.h> //Socket的函数调用 #pragma comment (lib, "ws2_32") //C语言引用其他类库时,除了.h文件外,还要加入对应的lib文件(这个不同于C#) 复制代码 代码如下: int main()
随机推荐
- Oracle数据行拆分多行方法示例
- ThinkPHP实现ajax仿官网搜索功能实例
- 关于js和php对url编码的处理方法
- Struts2 自定义下拉框Tag标签
- 一个简单的asp.net 单点登录实现
- PHP编实现程动态图像的创建代码
- php读取数据库信息的几种方法
- 杏林同学录(八)
- 使用优化器来提升Python程序的执行效率的教程
- vue.js实现数据动态响应 Vue.set的简单应用
- Linux/UNIX和Window平台上安装Mysql
- 支持png透明图片的php生成缩略图类分享
- Linux系统上配置Nginx+Ruby on Rails+MySQL超攻略
- BootStrapTable 单选及取值的实现方法
- jquery无限级联下拉菜单简单实例演示
- JS溶解形式的文字切换特效
- XP的小游戏移植到Win2003
- C# ConfigHelper 辅助类介绍
- Android编程之计时器Chronometer简单示例
- Android实现Tab布局的4种方式(Fragment+TabPageIndicator+ViewPager)