gpt4 book ai didi

c - 0x53918F0E 处未处理的异常 (ucrtbased.dll)

转载 作者:行者123 更新时间:2023-11-30 16:26:32 33 4
gpt4 key购买 nike

**#include <stdio.h>
#include <string.h>

void buildArray();
int main(void)
{
int example[20];
buildArray(example);
getch();
}

void buildArray(int param[]) {
int i = 0;
do {
printf("Please enter number :");
scanf("%d", param[i]);
i++;
} while (param[i] != -1);
}**

你好,我想从用户那里获取输入。用户何时输入-1数字,我想打破这个循环。但我收到一些错误代码:“HelloC.exe 中 0x53918F0E (ucrtbased.dll) 处未处理的异常:0xC0000005:访问冲突写入位置 0xCCCCCCCC。””

我的错在哪里?当我尝试将函数类型从 void 更改为 int 时,出现相同的错误。

最佳答案

有几个问题,首先是这个

scanf("%d", param[i]);

应该是

scanf("%d", &param[i]); /* need to provide address */

另外buildArray()原型(prototype)应该是

void buildArray(int *);

而不是

void buildArray();

另外,do..while条件是错误的,在条件部分使用param[i-1]而不是param[i]循环。

示例代码

void buildArray(int param[]) {
int i = 0;
do {
printf("Please enter number :");
scanf("%d", &param[i]);
printf("entered : %d\n", param[i]);
i++; /* because of this, condition part should be param[i-1] != -1 */

}while(param[i-1] != -1); /* it should be param[i-1] */
}

关于c - 0x53918F0E 处未处理的异常 (ucrtbased.dll),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53024390/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com