这个代码使用了malloc函数,在使用该函数的时候,应该先判断返回值是否为NULL,先进行if判断是否为空指针,如果为空指针,打印出错误,然后使用malloc函数开辟内存空间。主函数生成数组,然后使用指针将数组地址传入到find_max函数中找最大值。
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
int find_max(int *p, int n)
{
int i = 0;
int max = p[0];
for (i = 0; i < n; i++)
{
if (p[i] > max)
{
max = p[i];
}
}
return max;
}
int main()
{
int n;
int i = 0;
scanf_s("%d", &n);
int* p = (int *)malloc(sizeof(int) * n);
if (p == NULL)
{
printf("%s\n", strerror_s(errno));
}
else
{
for (i = 0; i < n; i++)
{
scanf_s("%d", p + i);
}
}
find_max(p, n);
printf("%d", find_max(p, n));
free(p);
return 0;
}