修改程序中错误

来源:百度知道 编辑:UC知道 时间:2024/05/16 04:00:05
1 功能:为数组赋值
void main()
{
int iLoopCnt;
int iArray[5];

for(iLoopCnt=0; iLoopCnt<5;iLoopCnt++,iArray++)
{
*iArray = iLoopCnt;
}
}

2 功能:为结构体申请内存并赋值
Typedef struct {
char cNo;
int iAge;
} Member_t;
main ()
{
Member_t *pstMember;
char *pcBuffer;

pcBuffer = (char*) malloc (sizeof (char) + sizeof (int));
pstMember = (Member_t*) pcBuffer;
pstMember ->cNo = 1;
pstMember ->iAge = 20;
}

3 功能:指针的强制类型转换(指明错误之处即可)
main()
{
int *piPointer;
char cItem;
cItem = 'a';
piPointer = (int *)& cItem;
*piPointer = 1298;
}

4 功能:打印二维数组的内容
void show (int * * iInfo, int iX, int iY)
{
int i,j;
for (i=0;i<iX;i++) {
for (j=0;j<iY;j++)
printf ("%d ",iInfo[i][j]);
printf ("\n");
}
}

1.错误在iArray++,iArray是数组常量,其值不能改变,所以不能执行++运算.
2.Typedef应该是typedef开头的t是小写,其他没发现什么错误,经过VC6.0测试,无错无警告.
3.这个不敢肯定,用VC6.0测试,没有问题问题.个人认为,如果真要找错,就是在piPointer = (int *)& cItem的时候会丢失精度.
4.错误在int * * iInfo,二维数组,比如a[10][10],其中第二个[]中的值是不可缺少的,不然系统不知道数组的排列,应改为int iInfo[][10].
5.错误在scanf("%s",pst[i]),*pst[5]是一个有5个元素且都是指针的数组,既然其中的元素是指针变量,那么,在使用之前,一定要确定它的指向,不然有可能指到系统区的数据,所以,不能直接用scanf给它读值.

这种情况实在安装程序时出错,解决的方法是重新安装系统。