struct结构体成员数组初始化问题

xusen1013 2013-08-03 11:08:47
typedef struct
{
int r[MAXSIZE+1];
int length;
}sqlist;

main()
{
sqlist* L;
}

//现在我想在main里初始化r数组,该如何处理
...全文
291 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhctj159 2013-08-04
  • 打赏
  • 举报
回复
先创建实例L=new sqlist();然后初始化r数组
海的神话 2013-08-04
  • 打赏
  • 举报
回复
sqlist* L; 你这声明的是一个结构体指针啊。 要初始化L就要么调用new,要么让L指向已经定义好的sqlist 变量 。 不然L就是个野指针了
max_min_ 2013-08-04
  • 打赏
  • 举报
回复
引用 8 楼 mujiok2003 的回复:
[quote=引用 6 楼 max_min_ 的回复:] [quote=引用 4 楼 mujiok2003 的回复:] [quote=引用 3 楼 max_min_ 的回复:]

main()
{
sqlist* L = NULL;
 L = (sqlist *) malloc(sizeof(sqlist)) ;//指针类型,最好自己分配内存比较好管理,
                                        // 不然野指针容易出问题
 L->r = {1,2,3,...}; //MAXSIZE
}
还是可能野指针,而且不支持
L->r = {1,2,3,...}; 
[/quote]

#include <stdio.h>
#include <stdlib.h>

#define MAXSIZE 2
typedef struct
{
    int r[MAXSIZE+1];
    int length;
}sqlist;

int main()
{
    sqlist* L  = (sqlist *) malloc(sizeof(sqlist));

    L->r = {1,2,3};
    int i =0; 
    for( i = 0; i < MAXSIZE +1 ; i ++) 
        printf("sqlist new r[%d] = %d \n",i+1, L->r[i]);
}
结果

sqlist new r[1] = 1 
sqlist new r[2] = 2 
sqlist new r[3] = 3 
[/quote] 看看[/quote] 网页出错
mujiok2003 2013-08-04
  • 打赏
  • 举报
回复
引用 6 楼 max_min_ 的回复:
[quote=引用 4 楼 mujiok2003 的回复:] [quote=引用 3 楼 max_min_ 的回复:]

main()
{
sqlist* L = NULL;
 L = (sqlist *) malloc(sizeof(sqlist)) ;//指针类型,最好自己分配内存比较好管理,
                                        // 不然野指针容易出问题
 L->r = {1,2,3,...}; //MAXSIZE
}
还是可能野指针,而且不支持
L->r = {1,2,3,...}; 
[/quote]

#include <stdio.h>
#include <stdlib.h>

#define MAXSIZE 2
typedef struct
{
    int r[MAXSIZE+1];
    int length;
}sqlist;

int main()
{
    sqlist* L  = (sqlist *) malloc(sizeof(sqlist));

    L->r = {1,2,3};
    int i =0; 
    for( i = 0; i < MAXSIZE +1 ; i ++) 
        printf("sqlist new r[%d] = %d \n",i+1, L->r[i]);
}
结果

sqlist new r[1] = 1 
sqlist new r[2] = 2 
sqlist new r[3] = 3 
[/quote] 看看
mujiok2003 2013-08-04
  • 打赏
  • 举报
回复
引用 6 楼 max_min_ 的回复:
[quote=引用 4 楼 mujiok2003 的回复:] [quote=引用 3 楼 max_min_ 的回复:]

main()
{
sqlist* L = NULL;
 L = (sqlist *) malloc(sizeof(sqlist)) ;//指针类型,最好自己分配内存比较好管理,
                                        // 不然野指针容易出问题
 L->r = {1,2,3,...}; //MAXSIZE
}
还是可能野指针,而且不支持
L->r = {1,2,3,...}; 
[/quote]

#include <stdio.h>
#include <stdlib.h>

#define MAXSIZE 2
typedef struct
{
    int r[MAXSIZE+1];
    int length;
}sqlist;

int main()
{
    sqlist* L  = (sqlist *) malloc(sizeof(sqlist));

    L->r = {1,2,3};
    int i =0; 
    for( i = 0; i < MAXSIZE +1 ; i ++) 
        printf("sqlist new r[%d] = %d \n",i+1, L->r[i]);
}
结果

sqlist new r[1] = 1 
sqlist new r[2] = 2 
sqlist new r[3] = 3 
[/quote] 只是你的编译器“宽容”了你。
max_min_ 2013-08-04
  • 打赏
  • 举报
回复
引用 4 楼 mujiok2003 的回复:
[quote=引用 3 楼 max_min_ 的回复:]

main()
{
sqlist* L = NULL;
 L = (sqlist *) malloc(sizeof(sqlist)) ;//指针类型,最好自己分配内存比较好管理,
                                        // 不然野指针容易出问题
 L->r = {1,2,3,...}; //MAXSIZE
}
还是可能野指针,而且不支持
L->r = {1,2,3,...}; 
[/quote]

#include <stdio.h>
#include <stdlib.h>

#define MAXSIZE 2
typedef struct
{
    int r[MAXSIZE+1];
    int length;
}sqlist;

int main()
{
    sqlist* L  = (sqlist *) malloc(sizeof(sqlist));

    L->r = {1,2,3};
    int i =0; 
    for( i = 0; i < MAXSIZE +1 ; i ++) 
        printf("sqlist new r[%d] = %d \n",i+1, L->r[i]);
}
结果

sqlist new r[1] = 1 
sqlist new r[2] = 2 
sqlist new r[3] = 3 
mujiok2003 2013-08-04
  • 打赏
  • 举报
回复
引用 1 楼 turingo 的回复:
sqlist L = {{1,2,3}, 3};
++
mujiok2003 2013-08-04
  • 打赏
  • 举报
回复
引用 3 楼 max_min_ 的回复:

main()
{
sqlist* L = NULL;
 L = (sqlist *) malloc(sizeof(sqlist)) ;//指针类型,最好自己分配内存比较好管理,
                                        // 不然野指针容易出问题
 L->r = {1,2,3,...}; //MAXSIZE
}
还是可能野指针,而且不支持
L->r = {1,2,3,...}; 
max_min_ 2013-08-04
  • 打赏
  • 举报
回复

main()
{
sqlist* L = NULL;
 L = (sqlist *) malloc(sizeof(sqlist)) ;//指针类型,最好自己分配内存比较好管理,
                                        // 不然野指针容易出问题
 L->r = {1,2,3,...}; //MAXSIZE
}
水平不流 2013-08-04
  • 打赏
  • 举报
回复
2L正解..简洁
pengfangxu8 2013-08-04
  • 打赏
  • 举报
回复
谢谢分享,学习了
图灵狗 2013-08-03
  • 打赏
  • 举报
回复
sqlist L = {{1,2,3}, 3};

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧