```c
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n = 0;
static int sumfm = 1;
int sumfz = 0;
scanf_s("%d", &n);
int* fz = 0;
fz = (int*)malloc(n * sizeof ( int));
int* fm = 0;
fm = (int*)malloc(n * sizeof(int));
for (int i = 0,a=0,b=0; i <= n; i++)
{
scanf_s("%d%d", &a, &b);
*(fz + i) = a;
if(b!=0)
*(fm + i) = b;
}
for (int i = 0; i<=n; i++)
{
sumfm *= *(fm + i);
}
for (int i = 0,fzz=0; ; i++)
{
fzz = *(fz + i) * sumfm / (*fm + i);
sumfz += fzz;
}
free(fz);
free(fm);
printf("%d/%d", sumfz, sumfm);
return 0;
}
0x00007FF7719C5CD8 处(位于 Project2.exe 中)引发的异常: 0xC0000005: 读取位置 0x000001DE5ED80000 时发生访问冲突。
for 循环的条件 i < n
而不是 i <= n
吧?
粗略看了一下报错是因为 *(fz + i) = a;
访问越界了,说明你这个指针的访问超过了你分配的内存