我正在尝试从用户输入数组长度,输出数字..
当n = 3时,我只得到“1”,“1”,“1”作为输出,而num的值是整数。
int main()
{
int *arr1, n,num = 0,*p;
printf("Please enter the size of the array: ");
scanf("%d", &n);
arr1 = (int*)malloc(n * sizeof(int));
if (arr1 == NULL)
printf("Not enough memory\n");
else printf("Array was allocated!\n" );
for (p = arr1; p < arr1 + n; p++)
{
*p = scanf("%d", &num);
printf("%d ", *p);
}
free(arr1);
getch();
}
答案 0 :(得分:4)
scanf
返回匹配数。 num
包含输入的整数
来自man scanf
:
返回值
这些函数返回成功匹配的输入项数 并指定[...]
替换
*p = scanf("%d", &num);
与
scanf("%d", &num);
*p = num;
或简单地 1
scanf("%d", p);
使其正常工作。
1 感谢@JoachimPileborg!