我在struct中有一个struct和一个动态数组。我想malloc这个数组,但我现在不怎么样。我希望该数组无效,因为我希望这个数组的成员是结构。你可以看到我尝试了一些东西,但它并没有真正起作用
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct saf
{
int head;
void **stack;
int size;
}exp1;
void init(int n)
{
struct saf exp1->stack = malloc(n);
}
int main()
{
printf("Give size: ");
scanf("%d",&exp1.size);
init(exp1.size);
return 0;
}
答案 0 :(得分:2)
我相信您正在寻找void *
,例如,
void init (int n)
{
exp1->stack = malloc(sizeof(void *) * n);
}
使用它时必须使用它。
答案 1 :(得分:2)
exp1不是指针。使用
exp1.stack = malloc(n);
答案 2 :(得分:0)
struct saf exp1.stack = malloc(n);
上述语句创建 n 内存位置数组,并将 void * 指针返回到起始地址。在这种情况下, stack 应该是单指针i,e void * stack; 如果你希望 stack 是一个双指针i,e void ** stack那么你应该使用
exp1.stack = malloc(sizeof(void *)* n);