我想做一個命令流來閱讀,但我正在編譯問題或分段錯誤。我想訪問我的struct command_stream中的成員,但是當我運行它時,我會得到「error:request for member'stream'in not a structure or union」或分段錯誤。我的代碼看起來像這樣。錯誤:請求成員'流'的東西不是一個結構或工會
typedef struct command_stream *command_stream_t;
struct command_stream
{
int stream[100];
int test;
};
//get_next_byte is function that returns next byte in stream
//get_next_byte_argument is pointer to FILE
command_stream_t
make_command_stream (int (*get_next_byte) (void *),void *get_next_byte_argument)
{
command_stream_t * ptr = checked_malloc(sizeof(struct command_stream));
int c;
int count = 0;
while((c = get_next_byte(get_next_byte_argument)) != EOF)
{
//(*ptr)->stream[0] = 0;
//(*ptr)->test = 0;
//ptr->test = 0;
//ptr->stream[count] = c;
count++;
break;
}
return 0;
}
/////////////////////
checked_malloc是一個函數,其基本上的malloc。 get_next_byte基本上是getc,並獲取文件中的下一個字符。 問題來自ptr。如果我嘗試使用ptr-> test或ptr-> stream [count],我會在「不是結構體或聯合體」的東西中看到錯誤「request for member'stream'」。 如果我嘗試(* ptr) - >流[0]或(* ptr) - >測試,沒有編譯錯誤,但我得到了分段錯誤。怎麼了?
它或者編譯或者它不 - 這是它?你說過「但我會得到錯誤......或者分段錯誤」 – 2012-01-17 01:12:11