这是我的代码
#include<stdio.h>
typedef struct{
int length;
int capacity;
int *data;
}Seqlist;
Seqlist * Create(int capacity);
void Set(Seqlist * seqlist,int * data);
int main(){
Seqlist * seqlist = Create(5);
int data = 999;
Set(seqlist,&data);
printf("%d",*(seqlist->data[0]));
return 0;
}
Seqlist * Create(int capacity){
Seqlist * seqlist = NULL;
seqlist = (Seqlist * )malloc(sizeof(Seqlist));
memset(seqlist,0,sizeof(Seqlist));
seqlist->capacity = capacity;
seqlist->data = (int *)malloc(sizeof(int));
printf("Init!\n");
return seqlist;
}
void Set(Seqlist * seqlist,int * data){
if(seqlist == NULL || seqlist->data == NULL) return;
//为了减少阅读量,
//这里先不做其他健壮性判断了
seqlist->data[seqlist->length] = data;
seqlist->length++;
}
这是出错的错误
问题是我创建的是指针数组,那我就可以存入指针,既然是指针就可以指向变量的地址,那这样逻辑就通顺了,我创建指针数组去存指向变量的指针也就可以通过指针数组的下标去*它间接拿到值,但是我的编译却无法通过,请问这是为什么呀,我的逻辑简单点来说就是类似于这样的过程
#include<stdio.h>
void set(int * a);
int main(){
int * a[1];
int b = 1;
a[0] = &b;
set(a[0]);
printf("%d\n",a[0]);
return 0;
}
void set(int * a){
printf("%d\t\n",*a[0]);
}