鴻飛

导航

 

 

 

 

 

 

 

 

 

数组是一块连续的内存空间

数组的首地址和数组的地址相同

 

 

 

 

 

 

 

 

静态内存和动态内存

静态内存是编译执行后系统自动分配,由系统自动释放,静态内存是栈分配的。

动态内存是开发者手动分配的,是堆分配的。

 

 

 

 

一下打印三次都是100:

 

对上述代码分析如下:

 

 

 

 

 

 

扩展数组

#include <iostream>

int main() {
int length;
printf("您输入你要数组的长度:\n");
scanf("%d", &length); // 输入一个长度
printf("您输入数组长度为:%d\n", length);
int* iArray = (int *)malloc(sizeof(int) * length);
int i;
for (i = 0; i < length; i++) {
printf("请输入iArray[%d]的值:\n", i);
scanf("%d", iArray + i);
}

// 扩展数组
int extentLen;
printf("您输入你要扩展数组的长度:\n");
scanf("%d", &extentLen); // 输入一个长度
printf("您输入的扩展数组长度为:%d\n", extentLen);

// 重新分配空间
iArray = (int *)realloc(iArray, sizeof(int) * (length + extentLen));
for (i = length; i < length + extentLen; i++) {
printf("请输入iArray[%d]的值:\n", i);
scanf("%d", iArray + i);
}

// 打印数组
for (i = 0; i < length + extentLen; i++) {
printf("iArray[%d]==%d\n", i, *(iArray + i));
}
return 0;
}
运行:

您输入你要数组的长度:
1
您输入数组长度为:1
请输入iArray[0]的值:
11
您输入你要扩展数组的长度:
2
您输入的扩展数组长度为:2
请输入iArray[1]的值:
22
请输入iArray[2]的值:
33
iArray[0]==11
iArray[1]==22
iArray[2]==33

 

 

 

 

 

 

 

posted on 2020-05-18 23:01  鴻飛  阅读(188)  评论(0)    收藏  举报