CJ_Finger 2015-03-20 14:09 采纳率: 100%
浏览 2005
已采纳

【线性表问题】线性表创建时的一点问题

typedef struct{
int *data;
int length;
}sqlist;

void init_list(sqlist *l){
(*l).data=(int *)malloc(3*sizeof(int));
if(!(*l).data)printf("error!");
(*l).length=0;
}

int *data;和(*l).data=(int *)malloc(3*sizeof(int));,这两句话的意思是不是,创建一个int型指针*data指向data,然后为data开辟动态空间?

  • 写回答

2条回答 默认 最新

  • 天命王子 2015-03-20 14:35
    关注

    int *data其实也可以写成int data[];
    就是在内存地址中创建一个名为data的指针,这个指针的地址也是数组data[]的地址;
    (*l).data=(int *)malloc(3*sizeof(int));这句话的意思是为data开辟一个可以存放三个整型的空间,不算是动态开辟空间,因为没有循环而已源程序也指定了只开辟三个int空间而已。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?