我的數據陣列中的以下功能有一些蹩腳的價值問題(在我看來就像一些內存位置):閱讀()緩衝區有無效數據(指針問題?)
int
GPIO::GetValue() {
char data[1];
if (read(_valuefd, data, 1) < 0) {
perror("Error on reading value fd");
return -1;
}
printf("int GPIO::GetValue() %s\n", data);
if (strcmp(data, "1") == 0) {
return GPIO_VALUE_ON;
}
if (strcmp(data, "0") == 0) {
return GPIO_VALUE_OFF;
}
return -1;
}
的的printf結果:
int GPIO::GetValue() 0cx$??ݾ??˶[email protected]
我不知道是什麼在這上面出錯了。我在一些簡單的程序中提取了相同的代碼,可以正常工作。還有一些其他功能GPIO :: GetDirection這是相同的,也工作正常。我想有一些內存,指針,分配問題。
什麼問題?
Bodo
我得到格式STRNCMP「%C」需要類型「詮釋」的說法,但參數2有類型'char *' – bodokaiser
??!在我的例子中,參數2的類型爲'char',它可以很好地用'%c'工作。我只是說明了如何使用'data'實現相同的功能,而不是'char *'。 –