请教一个小疑点:为什么像小弟我这样给一个数组赋值要出错?多谢!
请问一个小问题:为什么像我这样给一个数组赋值要出错?谢谢!!
我是在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 直接对他进行自假就可以了 真用下标的话也不用家取地址符,因为这个没有保存这段内存的起始地址的指针,这样做的话,还得再声明一个指针来保存起始地址的指针才行。
我是在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 直接对他进行自假就可以了 真用下标的话也不用家取地址符,因为这个没有保存这段内存的起始地址的指针,这样做的话,还得再声明一个指针来保存起始地址的指针才行。