举一个使用malloc的例子
时间: 2023-11-27 09:04:55 浏览: 18
好的,这是一个使用malloc的例子:
```c
#include <stdio.h>
#include <stdlib.h>
int main()
{
int *arr;
int size, i, sum = 0;
printf("请输入数组的长度:");
scanf("%d", &size);
arr = (int*)malloc(size * sizeof(int));
if(arr == NULL)
{
printf("内存分配失败!");
exit(1);
}
for(i = 0; i < size; i++)
{
printf("请输入第%d个元素的值:", i+1);
scanf("%d", &arr[i]);
sum += arr[i];
}
printf("数组元素的和为:%d", sum);
free(arr);
return 0;
}
```
在这个例子中,我们通过malloc分配了一段int型数组的内存空间,并将其地址赋予指针变量arr。然后,我们通过用户的输入,给数组赋值,最后计算出数组元素的和并输出。最后一步也很重要,我们必须使用free释放我们分配的内存空间,否则会导致内存泄漏。
相关问题
举一个例子关于malloc函数
好的,关于malloc函数的一个例子是在C语言中使用malloc函数动态分配内存,例如:
```
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n;
printf("Enter the number of elements you want to store: ");
scanf("%d", &n);
// dynamically allocate memory using malloc function
int *arr = (int *) malloc(n * sizeof(int));
if (arr == NULL)
{
printf("Memory allocation failed!");
exit(1);
}
printf("\nEnter the %d elements:\n", n);
for (int i = 0; i < n; i++)
{
scanf("%d", &arr[i]);
}
printf("\nThe elements entered by user are:\n");
for (int i = 0; i < n; i++)
{
printf("%d ", arr[i]);
}
// free the memory allocated using malloc function
free(arr);
return 0;
}
```
在这个例子中,我们动态使用malloc函数分配了用户指定数目的整数数组,从用户获取输入,并最终输出它们。在程序结束时,使用free函数释放动态分配的内存,以避免内存泄漏。
举一个使用realloc的例子
当程序需要动态地调整数组的大小时,可以使用realloc函数来重新分配内存空间。例如,下面的代码创建一个包含10个整数的数组,然后使用realloc函数将其扩展为20个整数:
int* arr = (int*)malloc(10 * sizeof(int)); // 创建10个整数的数组
arr = (int*)realloc(arr, 20 * sizeof(int)); // 将数组大小扩展为20个整数
这里,malloc函数分配了10个整数的内存空间,并返回该空间的首地址。接着,realloc函数将该空间扩展到20个整数,并返回新的内存空间首地址。注意,使用realloc函数时需要记得检查是否分配成功,以防止错误。