2017-04-16 35 views
-1

私はあまりにも多くの説明をする必要はありませんが、この関数は、私はすべての時間をマークした行でこのエラーを取得するだけで、この関数では、memoeryの割り当てがあります エラー:「WindowsがsapProject.exeでブレークポイントをトリガーしました。ヒープの破損、Cのエラー

これは、ヒープの破損が原因である可能性があります(これは、ここでいくつかの他のトピックを読んでください) 、sapProject.exeまたはそれがロードされていたDLLのいずれかのバグを示している。 」

void storeTok(char * lexem,int line,enum keywords typeof) 
{ 
    int ind; 
    if(tokens.size%100==0) 
    { 
    if(tokens.size==0) 
    { 
    tokens.ptrInd=-1; 
    tokens.first=(node*)malloc(sizeof(node)); 
    tokens.first->back = NULL; 
    tokens.first->next = NULL; 
    tokens.last=tokens.first; 
    } 
    else 
    { 
    node * nodenz=(node*)malloc(sizeof(node)); /error is here 
    nodenz->back = tokens.last; 
    nodenz->next = NULL; 
    tokens.last->next=nodenz; 
    tokens.last=tokens.last->next; 
    tokens.last=nodenz; 
    } 
    } 

    // general 




ind=tokens.size-(tokens.size/100)*100; 
tokens.last->tokens[ind].type=typeof; 
tokens.last->tokens[ind].linen=line; 
tokens.last->tokens[ind].lexema=lexem; 
tokens.size++; 
} 

ありがとう!

編集(これ以外、そこヘッダでもある(と、それをthatsの...):

typedef struct token 
{ 
    char * lexema ; 
    int linen; 
    enum keywords type; 
}token; 

typedef struct node 
{ 
    struct node * next,*back; 
    token tokens [50]; 
}node; 

typedef struct LL 
{ 
    struct node * last, *first, * ptr; 
    int size,ptrInd; 
}LL; 

LL tokens; 

void storeTok(char * lexem,int line,enum keywords typeof); 

メインFUNC:。

void main() 
{ 
    int i; 
    for(i=0;i<26;++i) 
    { 
storeTok("blabla",1,END); 
storeTok("sdfasd",1,START); 
storeTok("sfadds",1,IF); 
storeTok("gvdfd",1,THEN); 
storeTok("dfsfd",1,ELSE); 
    } 
    storeTok("dfsfd",1,EOF_); 
} 
+0

次に私のdownvoteについては説明しません。いずれか。 – GhostCat

+0

@GhostCatは説明してください:)、 あなたは人々に質問をしたくないのですか? – secret

+0

付属のメッセージを読んでください:あなたの質問は保留になります。 – GhostCat

答えて

0

ラインはおそらく被害者であることを破損したコードヒープはvalgrindやそれに類するツールのようなツールを使って見つけることができます(エラーを再現するのに十分なコードを与えてください)。

+1

これはコメントになるほうがいいでしょう。そのような質問は終了することがあります。 –

+0

あなたはコメント内の質問に答えるつもりはないので、質問に答えます。 (質問がある限り) –

+0

@DavidSchwartzはコードの残りの部分を追加しました。(そのちょうどヘッダファイル..) – secret

関連する問題