c语言malloc怎么用
时间: 2023-08-02 09:16:17 浏览: 40
在 C 语言中,`malloc()` 函数用于动态分配内存。它的声明如下:
```c
void* malloc(size_t size);
```
其中,`size` 参数表示要分配的内存大小,以字节为单位。如果分配成功,`malloc()` 返回指向分配的内存块的指针,否则返回 `NULL`。
以下是一个简单的示例,演示如何使用 `malloc()` 动态分配内存:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int* ptr;
int n, i, sum = 0;
printf("Enter the number of elements: ");
scanf("%d", &n);
ptr = (int*) malloc(n * sizeof(int));
if (ptr == NULL) {
printf("Memory allocation failed.\n");
exit(1);
}
printf("Enter %d elements:\n", n);
for (i = 0; i < n; i++) {
scanf("%d", ptr + i);
sum += *(ptr + i);
}
printf("Sum = %d\n", sum);
free(ptr);
return 0;
}
```
在上面的代码中,我们首先通过 `scanf()` 函数获取要分配的内存块的大小 `n`。然后,我们使用 `malloc()` 函数分配大小为 `n * sizeof(int)` 的内存块,它可以存储 `n` 个整数。如果分配成功,`malloc()` 将返回一个指向分配内存块的指针,否则返回 `NULL`。
在这个例子中,我们使用指针变量 `ptr` 来存储返回的指针。然后,我们通过循环读取 `n` 个整数,并将它们存储在分配的内存块中。最后,我们计算这些整数的总和并输出结果。
最后,我们使用 `free()` 函数释放分配的内存块,以便其他程序可以使用。