我目前正在编写一个需要使用指针的 C 程序,而我对此并不擅长。 我目前收到 4 个错误,全部显示“取消引用指向不完整类型的指针”,但我不知道为什么。
以下是我如何设置指针以及在何处出现错误的示例。
struct myset
{
unsigned char *vector;
int size;
int size_in_bytes;
int size_in_bits;
};
struct myset* set_new(int size)
{
int i;
struct myset* s;
s= malloc (sizeof (struct myset));
s->vector=malloc(sizeof(char)*(size/(sizeof(char)*8))+1);
for(i=0; i<size; i++)
{
s->vector[i]=0;
}
s->size_in_bits=size;
s->size_in_bytes=(size/(sizeof(char)))+1;
return s;
};
每当我尝试引用指针时,例如在此函数中,我都会收到错误。
void bitset_intersect(struct bitset * dest, struct bitset * src1, struct bitset * src2)
{
int maxSize = dest -> size_in_bits;
int i;
int j;
for(i = 0; i<maxSize; i++)
{
for(j = 0; j<maxSize; j++)
{
if(bitset_lookup(src1, i) == bitset_lookup(src2, j))
{
bitset_add(dest,i);
}
}
}
}
错误出现在行 int maxSize = dest -> size_in_bits;
如有任何帮助,我们将不胜感激,谢谢。
最佳答案
如果没有函数调用,就很难判断您是否传递了正确的值作为参数。
如果您在尝试引用指针时遇到错误,请检查函数调用以确保正确传递地址。这样做可以消除此错误。
*dest 和 *src 都应该具有传入其中的地址,因为两者都来自相同的结构位集。
关于c - 为什么会出现取消引用指针错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33529579/