来介绍一下如何使用C语言中的malloc函数来创建一维数组。
基本思路
使用malloc函数来分配内存空间,由于分配的空间是连续的,因此就可以通过指针变量来进行数组操作。需要注意的是,在使用完这段内存后,需要通过free函数来释放内存,以防止内存泄漏。
使用示例
示例1: 动态创建并初始化一维数组
可以通过如下代码来创建一个动态的一维数组,并进行初始化:
#include <stdio.h>
#include <stdlib.h>
int main () {
int* arr;
int size, i;
printf("请输入数组大小:");
scanf("%d", &size);
// 动态分配内存空间
arr = (int*)malloc(size * sizeof(int));
if (arr == NULL){
printf("内存分配失败!");
exit(0);
}
// 初始化数组
for( i=0; i < size; i++ ){
*(arr+i) = i*2;
}
// 输出数组
for( i=0; i < size; i++ ) {
printf("%d\n", *(arr+i));
}
// 释放内存空间
free(arr);
return 0;
}
示例2: 动态创建一维字符数组
可以通过如下代码来创建一个动态的一维字符数组:
#include <stdio.h>
#include <stdlib.h>
int main () {
char* str;
int size, i;
printf("请输入字符串长度:");
scanf("%d", &size);
// 动态分配内存空间
str = (char*)malloc(size+1);
if (str == NULL){
printf("内存分配失败!");
exit(0);
}
// 输入字符串
printf("请输入字符串:");
scanf("%s", str);
// 输出字符串
for( i=0; i < size; i++ ) {
printf("%c", *(str+i));
}
printf("\n");
// 释放内存空间
free(str);
return 0;
}
以上就是关于如何使用malloc函数来创建动态的一维数组的两个示例,希望对你有所帮助。