程序应该能够从这样一个文本文件中生成一个数字数组
数据如下
123 2132 1100909 3213 89890号
我的密码是

char a;
char d[100];
char array[100];
a=fgetc(fp) // where fp is a file pointer

if (a=='')
{
d[count1]='/0';
strcpy(&array[count],d);
count=count+1;
memset(d,'\0',100)
count1=0;
}

else
{
d[count1]=a;
count1=count1+1;
}
a=fgetc(fp);

我现在有分段错误了。希望将每个数字存储在数组中,以便对其进行排序

最佳答案

你的第一个问题是:

d[count1]='/0';
strcpy(&array[count],d);

你写的不是你想的那样。假设您的意思是'/0'(一个空的'\0'文本),那么您似乎试图在调用char之前手动终止字符串d。问题是,实际写入strcpy()的不是空字节,因此d不是以空结尾,然后d关闭并开始读取之后的随机内存,然后将该内存复制到strcpy()中,直到读或写结束在允许访问的内存之外,并且出现分段错误。
你也有一些困惑。它被声明为一个100arrays的数组,但您将其视为一个字符串数组。也许你是想把它声明为array

07-24 09:50