读书人

请教一个小疑点:为什么像小弟我这样给

发布时间: 2012-03-01 10:25:46 作者: rapoo

请问一个小问题:为什么像我这样给一个数组赋值要出错?谢谢!!
我是在VC++6。0下面建立的一个控制台程序,想实现部分动态数组的功能,但运行后结果不对,请问怎么回事?

#include "stdafx.h "
#include "malloc.h "
#include "math.h "

main()
{
int n;

double *X;
X = (double *)malloc( 4 * sizeof(double) );

for( n = 0 ; n <= 3 ; n++ )
scanf( "%f " , &X[n] );

for( n = 0 ; n <= 3 ; n++ )
printf( "%f\n " , X[n] );

free( X );
return 0;
}



[解决办法]
for( n = 0 ; n <= 3 ; n++ )
scanf( "%f " , (X+n) );

for( n = 0 ; n <= 3 ; n++ )
printf( "%f\n " , *(X+n) );
[解决办法]
f-> float, lf-> double
[解决办法]
scanf( "%d " , &X[n] );

for( n = 0 ; n <= 3 ; n++ )
printf( "%d\n " , X[n] );
改成这样就好了,你输入的类型不匹配。

回复人:likexin() :X已经是指针了,如果SCANF 直接对他进行自假就可以了 真用下标的话也不用家取地址符,因为这个没有保存这段内存的起始地址的指针,这样做的话,还得再声明一个指针来保存起始地址的指针才行。

读书人网 >C语言

热点推荐