如何在声明时初始化结构内的整数指针?

时间:2014-04-13 16:04:26

标签: c

#include<stdio.h>  
struct test_stub  
{  
   int n;  
   int *array;  
   char *b;
}  
test[3]=  
{  
   {5,{1,2,3,4,5},"abcd"}  
};  
int main()  
{    

    return 0;  
}

但这不起作用 错误我得到的int不能用于初始化int *
如果它是字符指针,我们可以在&#34;之间初始化它。 &#34;这些

1 个答案:

答案 0 :(得分:5)

如果您确实想在声明时初始化结构对象,请使用复合文字:

struct test_stub
{
    int n;
    int *array;
    char *b;
 }
 test[3]=
 {
    {5,(int [5]){1,2,3,4,5},"abcd"}
 };

或者如果您的数组大小固定,请将array的类型从int *更改为int [5]

struct test_stub
{
    int n;
    int array[5];
    char *b;
 }
 test[3]=
 {
    {5,{1,2,3,4,5},"abcd"}
 };