读书人

试用malloc()和calloc()函数时出有关问

发布时间: 2012-04-03 12:38:19 作者: rapoo

试用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

读书人网 >C语言

热点推荐