我的程序遇到了一些问题,没有任何编译错误。我在ALINUR_CAGLAYAN_LAB6.exe中的0x00d114d6处获得“未处理的异常:0xC0000005:访问冲突读取位置0x00000006。”输入数组元素后出错。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
main(void)
{
float *newArray, *blendingArray;
int a, x, blendingLength;
printf("length: ");
scanf("%d", &blendingLength);
blendingArray = (float*)malloc(blendingLength*sizeof(float));
newArray = (float*)malloc(blendingLength*sizeof(float));
for(a=0; a<blendingLength; a++)
{
printf("%d. element", a+1);
scanf("%d", &blendingArray);
}
for(a=0; a < blendingLength; a++)
{
if (a % 2 == 0)
{
newArray[a]=blendingArray[a];
}
else if (a % 2 == 1)
{
newArray[a]=blendingArray[blendingLength - a];
}
}
for (a=0; a < blendingLength; a++)
{
printf("%d. element of new array: %d\n", a+1, newArray[a]);
}
return *newArray;
}
答案 0 :(得分:1)
您正在重复地将整数值读入blendingArray
指针。除了尝试输入小数部分失败之外,这会使指针处于无用状态(指向0x00000006
,例如,如果您输入&#34; 6&#34;作为最后一个元素)。
您希望将浮点值读入blendingArray
的元素:
scanf("%f", &blendingArray[a]);