【发布时间】:2018-06-08 17:26:30
【问题描述】:
这段代码可以在代码块中返回正确的输出,但不能在黑客等级上返回。我没有收到问题?
#include <stdio.h>
int main()
{
int num,i;
long long unsigned int *num_alloc, FinalSum = 0;
num_alloc=(int*)malloc(sizeof(int)*num);
scanf("%d",&num);
for ( i=0;i<num;i++)
{
scanf("%llu",&num_alloc[num]);
FinalSum =FinalSum + num_alloc[num];
}
printf("%llu",FinalSum);
return 0;
}
【问题讨论】:
-
告诉我,
num当你使用malloc时的价值是多少? -
嗯,我不知道,但在与鸭子交谈后(见:How to debug small programs),我仍然无法回答——但我知道这不可能……
-
@Barmak Shernirani:
long long unsigned int是合法的,但可以写成unsigned long long。它至少是 64 位,但你不应该关心它是否更大(而且我不知道发生这种情况的 C 实现)。你也可以使用<stdint.h>中的uint64_t -
@Bathsheba - 别傻了。 Haxor 不要
free