首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

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

2012-04-03 
试用malloc()和calloc()函数时出问题编译器是MinGW源程序如下:#include stdio.h#include stdlib.hint

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

热点排行