【发布时间】:2018-12-19 22:25:16
【问题描述】:
如何为从堆内存中调用的数组元素赋值。我想从用户那里获取值,所以我在这里使用 scanf 但是当我尝试将第一个值分配给数组的第一个元素时,编译器显示分段错误(核心转储)并且我无法进一步分配价值观。
int n,i;
int *num;
int answer = 1;
scanf("%d", &n);
num = (int*)(malloc(n*sizeof(int)));
for(i=0; i<n; i++)
{
scanf("%d", num[i]);
answer = (answer*num[i])%(((int)pow(10,9))+7);
}
printf("\n%d",answer);
free(num);
return 0;
我想将值分配给数组的所有元素,这些元素将由用户定义数组大小和数组内的值。
【问题讨论】:
-
scanf("%d", num[i]);->scanf("%d", &num[i]); -
而不是
pow(10,9)+7,使用1e9 + 7会更容易阅读
标签: c