C语言用malloc创建一维数组

  • Post category:C

来介绍一下如何使用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函数来创建动态的一维数组的两个示例,希望对你有所帮助。