0
我在做一個動態創建整數列表的程序。賦值使整數的指針沒有在結構中投射
int ins_dlist(int data, struct dlist **p){
struct dlist *q;
if((*p)->sz == (*p)->maxsz){
q = realloc(*p, DLISTSZ((*p)->maxsz + INCRSZ));
if(q == NULL)
return (-1);
q->maxsz += INCRSZ;
*p = q;
}
//(*p)->item[(*p)->sz++] = data; <-Gives me pointer from integer without cast
*((*p)->item + (*p)->sz++) = data;
return(0);
}
我的問題是關於*((*p)->item + (*p)->sz++) = data;
我嘗試用不同的方式宣佈,但我還是不能讓我的結構進入sz
變量。 我的繼承人結構聲明,其名爲dlist.h文件中:
#include <stdlib.h>
struct dlist{
int sz;
int maxsz;
int *item[1];
};
#define INITSZ 5
#define INCRSZ 5
#define DLISTSZ(n) ((size_t)(sizeof(struct dlist)) + ((n-1)*sizeof(int)))
struct dlist *init_dlist(int num);
int ins_dlist(int data, struct dlist **p);
檢查您的'結構dlist'聲明或張貼在這裏。 – Marian
我在一個名爲dlist.h的文件中聲明瞭它,編輯了我的文章 – HighMrSai