试用malloc()和calloc()函数时出问题
编译器是MinGW
源程序如下:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int* pValue = (int*)malloc(5 * sizeof(int));
int* pNumber = (int*)calloc(5 , sizeof(int));
/* Show each array's size */
printf("The size of pValue is: %d\n" , sizeof(pValue));
printf("The size of pNumber is: %d\n" , sizeof(pNumber));
/* Get 5 integers for pValue */
printf("Input 5 integers for pValue:\n");
for(int i = 0 ; i <=4 ; i++)
{
scanf("%d\n" , pValue + i);
}
/* Get 5 integers for pNumber */
printf("\nInput 5 integers for pNumber:\n");
for(int i = 0 ; i <= 4 ; i++)
{
scanf("%d\n" , pNumber + i);
}
/* Show all the elements in each array */
printf("\nThe 5 integers in pValue are:\n");
for(int i = 0 ; i < 5 ; i++)
{
printf(" %d" , *(pValue + i));
}
printf("\n");
printf("\nThe 5 integers in pNumber are:\n");
for(int i = 0 ; i < 5 ; i++)
{
printf(" %d" , *(pNumber + i));
}
/* Release memory allocated before */
free(pValue);
free(pNumber);
return 0;
}
运行时第一个数组要输入六个值才能结束,而且输出也有问题,请高手帮忙看下
[解决办法]
scanf("%d\n" , pNumber + i);----->
scanf("%d" , pNumber + i);
OK!
看看scanf函数
[解决办法]
1。 格式要求
2。 只有当格式符 匹配完成或遇到 eof 及 错误,函数才会返回
3。 google