【发布时间】:2019-01-03 09:15:48
【问题描述】:
当我指向一个指针时,我得到一个警告。我不知道为什么;类型相同。
char delay_buffer1[40];
char delay_buffer2[40];
char** delay_buffer_front;
delay_buffer_front = &delay_buffer1;
目标是交换缓冲区:
void swap_string_buffer(void** pointer, void* buffer1, void* buffer2) {
printf("pointer: %u. buffer1: %u. buffer2 %u\n", pointer, buffer1, buffer2);
if(*pointer == buffer1) *pointer = buffer2;
else *pointer = buffer1;
}
示例代码:
copy_content_to(delay_buffer_front);
swap_string_buffer((void**) delay_buffer_front, (void*) delay_buffer1,(void*)delay_buffer2);
fprintf(file, "%s", delay_buffer_front);
警告:来自不兼容指针类型的赋值 [-Wincompatible-pointer-types] delay_buffer_front = &delay_buffer1;
【问题讨论】:
-
"类型相同。"不完全正确。指向指针的指针与指向数组的指针的类型不同。
-
delay_buffer1 == &delay_buffer1 = &delay_buffer1[0]
-
你怎么称呼
swap_string_buffer?请显示代码小minimal reproducible example。 -
...
delay_buffer_front的目的是什么?请解释swap_string_buffer到底应该做什么。显示具有预期输出的minimal reproducible example。 -
...但是它应该做什么???请展示一个完整示例,说明所有缓冲区的内容应该是之前和之后调用
swap_string_buffer