C 复制从文件读取的字符串并将其存储在二维字符串数组中
这是我从文件中复制字符串并将其存储在二维字符串数组中的代码C 复制从文件读取的字符串并将其存储在二维字符串数组中,c,arrays,string,file,C,Arrays,String,File,这是我从文件中复制字符串并将其存储在二维字符串数组中的代码 char str1[5000][2000]; while (NULL != fgets(str, 2000, fp)) { memcpy(str1[i][2000], str, 2000 * sizeof(char)); i=++line_number; } 但是我的死刑突然停止了。如何从文件中复制字符串并将其存储在字符串数组中?表达式 str1[i][2000] has类型为char,而函数me
char str1[5000][2000];
while (NULL != fgets(str, 2000, fp))
{
memcpy(str1[i][2000], str, 2000 * sizeof(char));
i=++line_number;
}
但是我的死刑突然停止了。如何从文件中复制字符串并将其存储在字符串数组中?表达式
str1[i][2000]
has类型为char
,而函数memcpy
要求第一个参数的类型为void*
你可以改写
char str1[5000][2000];
size_t n = 0;
while ( n < 5000 && fgets( str1[n], sizeof( *str1 ), fp ) != NULL )
{
str1[n][strcspn( str1[n], "\n" )] = '\0';
++n;
}
为什么要创建这么大的阵列?或者实际上:为什么要创建这样大的数组?注意
str1
对于自动变量来说太大了
static char str1[5000][2000];