2011-06-05 86 views
0
char buf[50]; 
char *ptr = buf; 

如果我想在第4個,第8個和第16個指針位置中硬編碼(''),如何將空間('')硬編碼到特定指針位置?硬編碼指針值

+8

「硬編碼」是什麼意思? – robbrit 2011-06-05 23:01:02

+0

執行此操作後,一定要三重檢查處理'buf'或'ptr'的所有字符串函數。根據被覆蓋的內容,數據可能不再是一個字符串(如果它是從頭開始的) – pmg 2011-06-06 08:07:02

回答

3
*(ptr+3) = ' '; 
*(ptr+7) = ' '; 
*(ptr+15) = ' '; 
+0

這比'hardcode'更像是'代碼',因爲可以被重寫,但是可能OP有C++語言的問題,我認爲沒關係 – Svisstack 2011-06-05 23:04:49

+0

它應該是'*(ptr + 3)','*(ptr + 7)'和'*(ptr + 15)'。 – 2011-06-05 23:05:29

+2

或'ptr [4] ='';'我認爲看起來更傳統 – 2011-06-05 23:05:33

3

如果硬編碼你的意思是你想前值啓動任何執行(如oposed至T111的答案),你可以這樣做:

char buf[50] = "... ... ....... "; 

,然後其餘的碼。 (請注意,非空格的位置具有無關緊要的值