0 votes 0 votes void fun(char **) innt main() { char *argv[]={"ab",cd","ef","gh"}; fun(argv); return 0; } voidfun(char **p) { char *t; t=(p+=sizeof(int))[-1]; pritf("%s\n",t); } output is a)cd b)gh c)ef d)ab eyeamgj asked Dec 1, 2017 eyeamgj 449 views answer comment Share Follow See all 8 Comments See all 8 8 Comments reply Show 5 previous comments vamp_vaibhav commented Dec 2, 2017 reply Follow Share I think you are doing mistake in second last line where you are trying to multiply size with 1 and then performing subtraction.. Why you intend to do this.. I mean subtracting value from address is not acceptable.. You have p as address now - 1 means if you are on address 1008 then downgrade to address 1000 assuming address size is 8.. 0 votes 0 votes eyeamgj commented Dec 2, 2017 reply Follow Share i think mistake in second last line is that 1*sizeofchar should be there instead of 1*sizeofint and rest is ok 1 votes 1 votes vamp_vaibhav commented Dec 2, 2017 reply Follow Share Check this out.. I hope you will understand what I was trying to make you understand.. 0 votes 0 votes Please log in or register to add a comment.