【发布时间】:2018-06-06 14:15:27
【问题描述】:
int n;
scanf("%d",&n);
int *score;
score=(int *)malloc(sizeof(int)*n);
int i;
for (i=0;i<n;i++)
{
scanf("%d",sizeof(int)*i+score);
}
printf("ok");
在上面的代码中,我收到一个错误,但是当我注释最后一行 printf 时,程序运行正常。
问题是什么??
(我想在不使用数组的情况下向用户提供 n 个数字)
【问题讨论】:
-
scanf("%d",sizeof(int)*i+score);-->scanf("%d",&score[i]);和score=(int *)malloc(sizeof(int)*n);-->score=malloc(sizeof(int)*n); -
然后这样做
scanf("%d",score+i); -
scanf("%d", &score[i]);。并检查scanf的返回值。 -
@M.M.:这就是所提到的,然后 OP 评论了一个要求 我不应该使用 [ 或 ]
标签: c memory memory-management malloc