構造体の配列に問題があります。 私は構造体の配列の要素に文字列の一部をコピーしようとしています。ここ構造体の配列の要素に文字列の一部をコピーするには?
を(それはあまり明確鳴らない場合は申し訳ありません)私のコードは
#include <stdio.h>
#include <string.h>
struct dict {
char key[1024];
char value[16384];
int level;
};
int main()
{
struct dict entry[2562];
char str[]="i will finish my mp";
int j=0;
int i = 0;
char temp[1024];
char a =0;
while(a != 'h'){
a = str[i];
temp[i] = str[i];
i++;
}
strcpy(entry[0].value,str);
puts(entry[0].value);
return 0;
}
ではコンパイルが、それは、セグメンテーションフォールトを行い、私はそれで間違っているのか分からない
'struct dict entry [2562];'が多すぎて自動ストレージに収まりません( "スタック上")。グローバルにするか、動的に割り当てます。 – wildplasser
大きな配列 'struct dict entry [2562]'をスタックに割り当てるため、segfaultが得られるかもしれません。関数からそれを移動し、それが機能するかどうかを確認してください。 – dasblinkenlight
デバッガで実行してみると、エラーの場所を特定し、変数を調べて問題の原因を調べるのに役立ちます。 –