C语言练习题——动态数组
生活随笔
收集整理的這篇文章主要介紹了
C语言练习题——动态数组
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
當(dāng)數(shù)組長(zhǎng)度需要由用戶指定時(shí),需要用到動(dòng)態(tài)數(shù)組。malloc()函數(shù)可以在堆中申請(qǐng)一塊內(nèi)存,字節(jié)數(shù)由程序員指定。申請(qǐng)來的內(nèi)存使用完之后需要用free()函數(shù)手動(dòng)釋放。
下面給出創(chuàng)建動(dòng)態(tài)一維數(shù)組的例子
#include<malloc.h> #include<stdio.h>int main() {int* p = NULL;int len;int i;printf("請(qǐng)輸入數(shù)組的長(zhǎng)度: \n");scanf("%d",&len);p = (int*)malloc(sizeof(int) * len);for(i=0; i<len; i++)p[i] = i;for(i=0; i<len; i++)printf("p[%d] = %d\n",i,p[i]);free(p); // 釋放申請(qǐng)的內(nèi)存return 0; }下面給出創(chuàng)建動(dòng)態(tài)二維數(shù)組的例子
#include<malloc.h> #include<stdio.h>int main() {int** p = NULL;//創(chuàng)建一個(gè)二級(jí)指針,他存放的元素類型是一級(jí)指針int n,m;//n行m列int i,j;//行、列控制變量printf("Please enter n,m\n");scanf("%d %d",&n,&m);p = (int**)malloc(sizeof(int*) * n);//把動(dòng)態(tài)申請(qǐng)的內(nèi)存分配給pfor(i=0; i<n; i++)//遍歷n行*(p+i) = (int*)malloc(sizeof(int) * m);//每行創(chuàng)建一個(gè)長(zhǎng)度為m的一維數(shù)組for(i=0; i<n; i++)//賦值for(j=0; j<m; j++)p[i][j] = i * j;for(i=0; i<n; i++)//輸出{for(j=0; j<m; j++)printf("%5d",p[i][j]); printf("\n\n");}free(p);//釋放申請(qǐng)的內(nèi)存return 0; }總結(jié)
以上是生活随笔為你收集整理的C语言练习题——动态数组的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: VS2017 快捷键
- 下一篇: 网络工具中的瑞士军刀——netcat工具