これはC言語の最初の1年間ですので、少し失われています。 、テキストファイルからダイナミックな文字列への行の保存
int main(){
char **lines;
read(lines);
return 0;}
そして、私は配列から何かを印刷しようとすると、私はエラーに直面し、コードが停止します。
void read(char** lines){
FILE *fpointer = fopen("input1.txt","r");
char *p_input = (char*) malloc(sizeof(char)*200);
int i,len;
i=0;
lines = malloc(sizeof(char*));
while(fgets(p_input,200,fpointer)){
len = strlen(p_input);
char temp[len];
strcpy(temp,p_input);
lines[i] = temp;
i++;
}
}
とメインで:
は私が機能を持っています次のようなもの:
printf("%s\n",lines[0]);
あなたは何が間違っているか教えていただけますか?
コードにはいくつか問題があります。この問題を解決するには、['realloc'](http://en.cppreference.com/w/c/memory/realloc)機能についてお読みください。本当に悪いもう一つの問題は、ローカル変数へのポインタを保存することです。変数 'temp'は範囲外になり、ループの繰り返しごとに存在しなくなります。文字列*とポインタを複製する必要があります。 –