2011-06-05 48 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] = "... ... ....... "; 

,然后其余的码。 (请注意,非空格的位置具有无关紧要的值