C++语言,怎么实现动态数组
时间: 2024-05-07 22:15:32 浏览: 13
在 C 语言中,实现动态数组的方法是使用指针和动态内存分配函数。具体步骤如下:
1. 声明指向数组的指针变量,如 int *arr;
2. 使用动态内存分配函数 malloc() 分配一段内存空间,如 arr = (int*)malloc(n * sizeof(int)); (n 为数组长度)
3. 将指针变量 arr 当作普通数组使用,如 arr[i] = i;
4. 使用完动态数组后,记得调用 free() 函数释放内存空间,如 free(arr);
完整代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int n, i;
int *arr;
printf("请输入数组长度:");
scanf("%d", &n);
// 动态分配内存空间
arr = (int*)malloc(n * sizeof(int));
// 对数组赋值
for (i = 0; i < n; i++) {
arr[i] = i;
}
// 输出数组
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
// 释放内存空间
free(arr);
return 0;
}
```
相关问题
用C++语言实现动态数组生成随机数组
可以使用C语言中的malloc函数动态分配数组空间,再使用rand函数生成随机数填充数组。具体实现代码如下:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int n;
printf("请输入数组长度:");
scanf("%d", &n);
int *arr = (int *)malloc(n * sizeof(int)); // 动态分配数组空间
srand(time(NULL)); // 初始化随机数种子
for (int i = ; i < n; i++)
{
arr[i] = rand() % 100; // 生成~99之间的随机数
}
printf("生成的随机数组为:\n");
for (int i = ; i < n; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
free(arr); // 释放数组空间
return ;
}
```
C++语言两个数组去重合并
您好,以下是 C 语言实现两个数组去重合并的示例代码:
```c
#include <stdio.h>
// 判断元素是否已经存在于目标数组中,存在返回1,不存在返回0
int exist(int a[], int n, int x){
for(int i=0; i<n; i++){
if(a[i] == x) return 1;
}
return 0;
}
// 将数组b中的元素添加到数组a中
void merge(int a[], int *n, int b[], int m){
for(int i=0; i<m; i++){
if(!exist(a, *n, b[i])){
a[(*n)++] = b[i];
}
}
}
int main(){
int a[100], b[100], n, m;
printf("输入数组a的长度(大于0小于等于100):");
scanf("%d", &n);
printf("输入数组a:");
for(int i=0; i<n; i++){
scanf("%d", &a[i]);
}
printf("输入数组b的长度(大于0小于等于100):");
scanf("%d", &m);
printf("输入数组b:");
for(int i=0; i<m; i++){
scanf("%d", &b[i]);
}
merge(a, &n, b, m);
printf("去重合并后的数组为:");
for(int i=0; i<n; i++){
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
```
该程序首先从标准输入获取两个数组的长度和元素值,然后通过 `exist` 函数判断每个元素是否在目标数组中存在,在不存在时添加到目标数组末尾,并最后输出去重合并后的目标数组。