2013-09-21 85 views
0

enter image description hereSTRUCT陣列錯誤

大家好, 從上述圖像。 我能夠編譯,但程序在運行時崩潰。 請告訴我可以通過什麼方式解決這個問題? 謝謝

// structArray.h:

#ifndef __STRUCTARRAY_H_ 
#define __STRUCTARRAY_H_ 


typedef struct _vector{ 
    int* str; 
    int  maskSize; 
    // etc... 
}__attribute__((__packed__)) _vector_t; 

#endif /* _STRUCTARRAY_H_ */ 

**// do_structArray.c** 

#include "structArray.h" 

extern struct _vector_t t; 

void do_structArray (void) { 

int plaintext[2] = {0x05, 0x08}; 

_vector_t t[] = { 
    {plaintext, sizeof(plaintext)}, 
    //{}, 
}; 

    printf("Content: \n%x \n", t[1].str[1]); 
} 

// main : just calling do_structArray 
#include <stdio.h> 
#include <stdlib.h> 

#include "structArray.h" 

extern struct _vector_t t; 

int main(int argc, char *argv[]) {  
do_structArray(); 

    system("PAUSE"); 
    return 0; 
} 

回答

3

數組索引從C中的0開始。您正在訪問數組元素末尾的數組元素。將索引更改爲0:

printf("Content: \n%x \n", t[0].str[0]); 
+0

對不起。深夜編程真的進入我。這是對的。 謝謝你幫助我。 –

4

您正在訪問t[1]但只有在t一個項目。嘗試printf("Content: \n%x \n", t[0].str[1])

+0

謝謝。我現在看到它。 –