gpt4 book ai didi

c - 我如何在不使用 stdlib.h 的情况下执行此代码

转载 作者:太空宇宙 更新时间:2023-11-04 01:50:39 25 4
gpt4 key购买 nike

我不断收到有关 malloc 的错误消息,我正在尝试了解如何在不使用 header 中的 stdlib.h 的情况下使此代码正常工作。只是 stdio.h,这可能吗?如何实现?因为我完全糊涂了

#include <stdio.h>

void allocate(int* score_array, const int input)
{
int iter;

for(iter = 1;iter <= 11;++iter)
{
if( (input < iter*10) && (input >= (iter-1)*10 ) )
{
++(score_array[iter-1]);
}
}
}

void printf_star(const int len)
{
int iter;

for(iter = 0;iter < len;++iter)
{
printf("*");
}

printf("\n");
}

int main()
{
int iter, size, temp;
int* buffer;
int score_array[11];

for(iter = 0;iter < 11;++iter)
{
score_array[iter] = 0;
}

printf("How many grades will you be entering?\n");
printf("Enter a number between 1 and 100: ");
scanf("%d", &size);

buffer = (int*)malloc(size*sizeof(int));

for(iter = 1;iter <= size;++iter )
{
printf("Getting grade %d. You have %d grade(s) left to enter\n", iter, size-iter+1);
printf("Enter a number between 0 and 100: ");
scanf("%d",&temp);

if( (temp>=0) && (temp <= 100) )
{
buffer[iter-1] = temp;
}
else
{
do
{
printf("Invalid Value!\n");
printf("Getting grade %d. You have %d grade(s) left to enter\n", iter, size-iter+1);
printf("Enter a number between 0 and 100: ");
scanf("%d",&temp);
}
while( (temp < 0) || (temp > 100) );
}
}

for(iter = 1;iter <= size;++iter)
{
allocate(score_array, buffer[iter-1]);
}

for(iter = 0;iter < 11;++iter)
{
printf_star(score_array[iter]);
}

return 0;
}

我一直收到这个错误:

hw08.c: In function ‘main’:
hw08.c:56: warning: incompatible implicit declaration of built-in function ‘malloc’

最佳答案

这只是一个警告,不是真正的错误,所以程序仍然可以编译。

要消除警告,您可以在文件中声明 malloc:

#include <stdio.h>
extern void * malloc(unsigned long);

您也可以只包含 stdlib.h,除非您有重大理由不这样做。

关于c - 我如何在不使用 stdlib.h 的情况下执行此代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43787270/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com