c中char *指针的算术,给出错误

时间:2015-05-30 19:40:06

标签: c pointers

我想添加和减去指针,例如

memcpy(sndb + ptr - recb, argv[3], strlen(argv[3]));

不幸的是,我得到了这个:

error: invalid operands to binary + (have 'char *' and 'char *')

基本上,ptr - recbsndb缓冲区中的偏移量,所以我不太明白放置它的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

您收到此错误是因为您尝试添加两个指针sndbptr。 C.中不允许添加两个指针 您可以添加指针和数字,例如sndb + 1会让你解决sndb + sizeof(对象sndb指向的类型) 您还可以减去指针,在这种情况下,您可以获得两个指针之间的字节距离。 使用sndb + (ptr - recb),首先减去两个指针,然后得到一个数字,然后将此数字添加到sndb指针。这是允许的。