これが私の構造です:
typedef struct termNode{
char term[41];
int matched;
struct termNode *next;
} termNode;
次のコードで問題なく動作します。
int add_term_to_list(char term[41]){
int i = 0;
termNode *tmp = NULL;
if(headTerm == NULL){
if(create_head(term) != 0)
return 1;
else
return 0;
}
tmp = malloc(sizeof(termNode*));
if(tmp == NULL)
return 1;
while(term[i] != '\n'){
tmp -> term[i] = term[i];
i++;
}
tmp -> term[i] = 0;
tmp -> matched = 0;
tmp -> next = NULL;
currTerm -> next = tmp;
currTerm = tmp;
return 0;
}
ただし、構造体に別の変数を追加すると:
typedef struct termNode{
char term[41];
int matched;
int size;
struct termNode *next;
} termNode;
次に、実行しようとするとセグメンテーション違反が発生します。これが私のコードの唯一の変更です。なぜこれが起こるのか誰か知っていますか?
コードを更新 -> make clean -> make -> run すると segfault が発生します。