void OneDToTwoD(char* rel){
/* all the declarations here */
while(rel[i] != '\0'){
i++;
}
...
在上面的代碼中,我得到了所有「有時」的分段錯誤。並valgrind檢查拋出「無效的讀取大小1」在我在線 while(rel[i] != '\0'){
查找陣列指針的長度-Valgrind錯誤:無效的讀取大小爲1
在該行,我試圖找出長度爲rel
。 我知道必須有更好的方法來做到這一點。我不能只做sizeof
可以嗎?
我假設我從0開始? (沒有在你的代碼中顯示,C不會很好的默認)。爲什麼不使用'strlen()'? – John3136
這段代碼中有很多東西可能會導致問題。數組相對多大?您應該將數組大小傳遞給'OneDToTwoD',因爲在函數內部沒有保證以null結尾的方式。我從哪裏開始?它是否初始化爲0? –
是否所有'rel'都調用函數'OneDToTwoD'調用,終止於''\ 0''? – Rohan