我想添加和减去指针,例如
memcpy(sndb + ptr - recb, argv[3], strlen(argv[3]));
不幸的是,我得到了这个:
error: invalid operands to binary + (have 'char *' and 'char *')
基本上,ptr - recb
是sndb
缓冲区中的偏移量,所以我不太明白放置它的正确方法是什么?
答案 0 :(得分:1)
您收到此错误是因为您尝试添加两个指针sndb
和ptr
。 C.中不允许添加两个指针
您可以添加指针和数字,例如sndb + 1
会让你解决sndb + sizeof(对象sndb指向的类型)
您还可以减去指针,在这种情况下,您可以获得两个指针之间的字节距离。
使用sndb + (ptr - recb)
,首先减去两个指针,然后得到一个数字,然后将此数字添加到sndb
指针。这是允许的。