gpt4 book ai didi

c - 变量 "numbers"周围运行时检查失败 #2-stack

转载 作者:行者123 更新时间:2023-11-30 17:59:32 25 4
gpt4 key购买 nike

我有如下所示的输入文件

5

8

10

实际上,我需要在上面的示例中读取更多行的文件。(中间没有空格。因此,我需要让数组的大小取决于文本文件的行数。这是我使用的方法通过发生 r

#include "stdafx.h"
#include <ctype.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>

int _tmain(int argc, _TCHAR* argv[])
{
FILE *test;
int numbers[]={0};
int i=0;
char *array1;
if((test=fopen("Input1.txt","r"))==NULL)
{
printf("File could not be opened\n");
}
else
{
array1 = (char*)malloc(1000*sizeof (char));
if((test=fopen("Input1.txt","r"))==NULL)
{
printf("File could not be opened\n");
}
else
{
while(fgets(array1,(sizeof array1)-1,test)!=NULL)
{
numbers[i]=atoi(array1);
i++;
}
for(i=0;i<sizeof(array1)-1;i++)
{
printf("%d\n",numbers[i]);
}
}
fclose (test);
}
system("pause");
return 0;
free(array1);
}

最佳答案

您正在使用 sizeof 执行它无法执行的操作。
sizeof array1 是变量array1 的大小。由于它被定义为char *,因此大小就是指针的大小(32位系统中为4,64位系统中为8)。
显然您想要 array1 指向的已分配内存量。但是sizeof无法给出。

在您的情况下,您需要使用分配的大小 - 1000。最好将其放在一个变量中,而不是在两个地方使用数字 1000(因为这样,如果更改一个,您可能会忘记更改另一个)。

关于c - 变量 "numbers"周围运行时检查失败 #2-stack,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11337336/

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