小编bru*_*ceg的帖子

在结构中初始化结构?

所以我有以下两种结构

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

2
推荐指数
1
解决办法
75
查看次数

如何在C中将变量大小的int数组初始化为0?

我正在尝试在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)

c arrays

-1
推荐指数
1
解决办法
88
查看次数