gpt4 book ai didi

c - 如何为 char 数组分配内存,如何为此使用指针?

转载 作者:太空宇宙 更新时间:2023-11-04 02:05:27 26 4
gpt4 key购买 nike

<分区>

如上所述,我碰巧在为我的 char 数组分配内存时遇到了问题。分配内存的要点是我想读取一个 .txt 文件并将其全部保存在一个 char 数组中,以便以后使用它。 (寻找最大的重复字符串)

在发布之前,我已经在 Internet 上查找了 2 个多小时,但我无法让它正常工作,似乎我遗漏了一些东西,或者只是不完全理解指针是如何工作的,而我真的不明白。

这些评论是德语的,就像我希望没有人介意的一些变量一样。

代码如下:

# include <stdio.h>
# include <stdlib.h>
# include <math.h>
# include <string.h>
# include <ctype.h>

# define N 99
# define K 255


main() {

FILE *Test;
long len = 1;
int i = 0;
int k;
// char String[N]; //[100][255] = {" "};
// char* pString;
// pString = String;




Test = fopen("Moby_Dick.txt", "r"); // Datei öffnen, r = lesen | (nicht vergessen DATEINAMEN anzupassen)

if (fseek(Test, 0L, SEEK_END) != 0) { //jump ans Ende

printf("\nFEHLER in SEEK_END");
fclose(Test);
return 3;
}

if ((len = ftell(Test)) < 0L) {

printf("\nERROR in ftell");
fclose(Test);
return 3;
}

if (fseek(Test, 0L, SEEK_SET) != 0) { // jump an den Anfang

printf("\nERROR in SEEK_SET");
fclose(Test);
return 3;
}

char *String = (char*)malloc(sizeof(char)*len + 12); //(char*)

Test = fopen("Eingabe.txt", "r");

do{
fgets(String[i], 500, Test); // jede Zeile wird in einem Feld gespeichert
i++; // zählt die Zeilen hoch
}while(!feof(Test)); // lese bis Dateiende

fclose(Test); // Datei schliessen

for (k = 0; k < 20; k++) {
printf("%s\n----------------------------\n", String[k]);
}
printf("len = %d\n", len);


return 0;
}

感谢我能得到的任何帮助。我希望得到解释,而不仅仅是传递代码。

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