當然假設沒有輸入將大於9個字符。例如:字符數組可以被C中更長的字符串覆蓋嗎?
#define MAX 10
char array[MAX];
while(scanf("%s",array))!=NULL){
//do something with the array one time,
//now when I go back to the top of the loop I want to store a new string in the array
//that may be longer or shorter
//than the string that was previously in there. Ideally I want to overwrite the array
//since I don't need the data anymore.
}
我會遇到問題嗎?有一個更好的方法嗎?也許使用一個指針和malloc?提前致謝。記住,我是初學者,想要學習正確的方法。
您可以根據需要覆蓋前一個字符串,但'array'永遠不能容納超過10個'char's。你真的想用它做什麼? (另外:如果你想真的正確使用'scanf(「%9s」,array)'或['fgets'](http://en.cppreference.com/w/c/io/fgets),那麼即使輸入超過9個'char',輸入也不會溢出。) – Kninnug
「當然假定沒有輸入會大於9個字符」 - 您無法合理地假設這一點。 –
對於這個特定的情況,我假設。 –