malloc循环打印并释放
时间: 2023-09-05 09:07:48 浏览: 27
以下是使用malloc分配内存,循环打印并释放的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int* arr;
int size = 5;
int i;
// 分配内存
arr = (int*)malloc(size * sizeof(int));
// 初始化数组
for (i = 0; i < size; i++) {
arr[i] = i + 1;
}
// 循环打印数组元素
for (i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
// 释放内存
free(arr);
arr = NULL;
return 0;
}
```
输出结果:
```
1 2 3 4 5
```
在此示例中,我们首先使用malloc函数分配了一个大小为5个整数的数组。然后,我们对数组进行了初始化,并使用循环打印了数组的所有元素。最后,我们使用free函数释放了数组所占用的内存,并将数组指针设置为NULL。
相关问题
举例使用malloc
malloc是C语言中的一个函数,用于在堆内存中动态分配指定大小的内存空间。它的函数原型为:
```c
void* malloc(size_t size);
```
其中,size_t是一个无符号整数类型,表示要分配的内存空间的大小(以字节为单位)。malloc函数返回一个指向分配内存空间的指针,如果分配失败,则返回NULL。
下面是一个使用malloc函数的示例:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int* numbers;
int size;
printf("请输入要分配的整数个数:");
scanf("%d", &size);
numbers = (int*)malloc(size * sizeof(int));
if (numbers == NULL) {
printf("内存分配失败\n");
return 1;
}
printf请输入%d个整数:\n", size);
for (int i = 0; i < size; i++) {
scanf("%d", &numbers[i]);
}
printf("您输入的整数为:\n");
for (int i = 0; i < size; i++) {
printf("%d ", numbers[i]);
}
printf("\n");
free(numbers); // 释放内存空间
return 0;
}
```
在上述示例中,我们首先通过scanf函数获取用户输入的整数个数,然后使用malloc函数动态分配了一个大小为size * sizeof(int)的内存空间,并将返回的指针赋值给numbers变量。接下来,我们使用循环依次读取用户输入的整数,并将其存储在分配的内存空间中。最后,我们打印出用户输入的整数,并使用free函数释放了之前分配的内存空间。
malloc创建数组
你可以使用`malloc`函数在C语言中动态地分配内存来创建数组。下面是一个使用`malloc`创建数组的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int size;
int *array;
printf("请输入数组大小:");
scanf("%d", &size);
// 使用malloc动态分配内存
array = (int *)malloc(size * sizeof(int));
if (array == NULL) {
printf("内存分配失败\n");
return 1;
}
printf("请输入数组元素:\n");
for (int i = 0; i < size; i++) {
scanf("%d", &array[i]);
}
printf("数组元素为:\n");
for (int i = 0; i < size; i++) {
printf("%d ", array[i]);
}
// 释放内存
free(array);
return 0;
}
```
在这个示例中,首先通过`scanf`函数获取用户输入的数组大小。然后使用`malloc`函数分配一块大小为`size * sizeof(int)`的内存,即能容纳整型元素的内存空间。如果内存分配失败,`malloc`函数会返回`NULL`。接下来,通过循环依次获取用户输入的数组元素,并打印输出。最后,使用`free`函数释放内存。
请注意,在使用完动态分配的内存后,一定要记得及时释放内存,以避免内存泄漏。