我目前正在做一个需要使用指针的C程序,我并不擅长。 我目前正在收到4个错误,这些错误都说“解除指向不完整类型的指针”#39;而且我不知道为什么。
以下是我如何设置指针以及我在何处收到错误的示例。
if ( !(inF >> first >> last >> middle) )
{
// Deal with error.
}
每当我尝试引用指针时都会出错,例如在此函数中。
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);
}
}
}
}
行
任何帮助都将不胜感激,谢谢。
答案 0 :(得分:0)
如果没有函数调用,则很难判断您是否将正确的值作为参数传递。
如果在尝试引用指针时遇到错误,请检查函数调用以确保正确传递地址。这样做会消除此错误。
* dest和* src都应该具有传递给它的地址,因为它们都来自相同的struct bitset。