我使用strtok時出現問題。我希望令牌具有保留的大小,因此其內容不會破壞其他數據(我的內存很小,因爲我正在使用MCU而不是PC)。然後我決定將ir聲明爲一個聲明大小的數組。C:分配無效:左值是隻讀使用strtok
但後來我有這樣的錯誤:分配無效:左值僅
#DEFINE BUFFER_SIZE 128
static int8 buffer[BUFFER_SIZE]; // Declared as global
void myFunction(){
char separador[3], token[BUFFER_SIZE], cmd[BUFFER_SIZE];
strcpy(cmd, buffer); // buffer is a global variable declared ad
strcpy(separador, ",;");
token = strtok(cmd, separador); // <----- ERROR
//...
}
閱讀是什麼錯誤究竟意味着什麼呢?是否因爲我沒有初始化數組?如果我聲明它是靜態的,它會起作用嗎?
在互聯網上有很多使用'strtok'的例子。檢查一下,也許讀一點關於C中指針和數組的區別(我承認,這是很小的)。 –