所以我有以下两种结构
typedef struct clienttable {
vartable head;
vartable tail;
} clienttable;
typedef struct vartable {
int tableid;
int randominfo;
struct vartable *next;
} vartable;
Run Code Online (Sandbox Code Playgroud)
我想像这样初始化他们.
clienttable *maintable;
maintable = (clienttable *) malloc (sizeof( clienttable));
maintable->head = {.tableid = 10, .randominfo=NULL, .next=NULL};
Run Code Online (Sandbox Code Playgroud)
但是当我去编译时,我会继续得到一个
expected expression before { token
Run Code Online (Sandbox Code Playgroud)
错误.我也尝试过{10,NULL}无济于事.
我究竟做错了什么?
另外,我需要malloc同时clientable和所有的客户表中的表,或将只是malloc荷兰国际集团的一个工作?
c struct memory-management initialization variable-assignment
我正在尝试在C中插入元素程序.我需要将VARIABLE SIZED ARRAY初始化为0,但编译器不允许我这样做.任何出路?
#include <stdio.h>
void insert(int arr[],int k,int pos,int n)
{
display(arr,n);
int i=n-1;
if(pos<n) {
while(i>=pos) {
arr[i]=arr[i-1];
i--;
}
arr[pos]=k;
display(arr,n);
} else {
printf("\n !!Array full!!");
return 0;
}
}
void display(int arr[],int n)
{
int i;
printf("\n Displaying array elements: ");
for(i=0;i<n;i++)
if(arr[i]!=0)
printf("%d ",arr[i]);
}
int main()
{
int n,pos,i=0,k;
char c='y';
printf("\n Enter the no. of elements: ");
scanf("%d",&n);
int arr[n];
printf("\n Enter the array elements: ");
while(c=='y'||c=='Y') {
scanf("%d",&arr[i]);
i++;
printf("\n Continue …Run Code Online (Sandbox Code Playgroud)