gpt4 book ai didi

c - 填充 char* 数组时发生访问冲突

转载 作者:太空宇宙 更新时间:2023-11-04 06:01:39 25 4
gpt4 key购买 nike

我用c写了一段代码:

const char *str[125000]; 
float k[125000];
long n;
char string[20];
int i;
scanf("%d",&n);
for (i=0;i<n;i++)
{
scanf("%s%f",&string,&k[i]);
p=p/k[i];
str[i]=_strdup(string);
}

此时一切都完美了。即使 n=100000,数组也会被填充;但是,如果我改变

for (i=0;i<n;i++)

for (i=n;i>0;i--)

我收到“访问冲突”错误。我不知道为什么会这样,所以我请求你的帮助。提前致谢。

最佳答案

C 中大小为 n 的数组从 0 到 n - 1。所以你的循环应该是

for (i=n-1;i>=0;i--)

你得到一个错误,因为你试图访问数组边界之外的内存。

关于c - 填充 char* 数组时发生访问冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18706273/

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