由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 请教如何初始化这个C data structure Steque的object?
相关主题
请教函数 INIT 怎么能free memoryask a question about struct in C programming
how to initialize this struct.typedef
为啥有人喜欢把_s结尾的结构typedef成_t结尾的,有讲究么?typedef struct的问题
sizeof()的问题一个简单的C编程问题
问个GSL的问题有段c++代码看不懂
difference between FILE and struct FILE请教一个c++ 里functor的问题
请问可以这样定义struct吗?问个编程,系统,网络有关的综合问题。
[合集] Interview Questiontypedef 的一个问题
相关话题的讨论汇总
话题: steque话题: item话题: enqueue话题: 初始化话题: stq
进入Programming版参与讨论
1 (共1页)
W***o
发帖数: 6519
1
这是一个作业,是应用这个提供的data structure Steque 控制程序里object的流向和
path。
源码贴这里了 http://pastebin.com/VzvcdJKu
我现在对如何使用这个data structure糊涂,从java过来的,不知道在C里面怎么初始
化一个object.
我自己想做一个下面的初始化测试:
typedef struct steque_t steque;
steque *stq;
int i;
for(i = 0; i < 10; i++)
{
steque_item *item = malloc(sizeof(steque_item)); // 这样初始化一个
item
steque_enqueue(stq, item); //然后把item enqueue到stq数据结构里面
}
可是目前这么做的结果是编译时报错:
gcc stequeTest.c -o stequeTest
stequeTest.c: In function ‘main’:
stequeTest.c:19:6: warning: passing argument 1 of ‘steque_enqueue’ from
incompatible pointer type [enabled by default]
steque.h:28:6: note: expected ‘struct steque_t *’ but argument is of type
‘struct steque *’
/tmp/ccxO1ZWh.o: In function `main':
stequeTest.c:(.text+0x2e): undefined reference to `steque_enqueue'
collect2: ld returned 1 exit status
想请教一下,在C里面如何初始化一个data structure object? 知道这个我下面的程序
就会写了,谢谢
s******y
发帖数: 416
2
用new,malloc不触发初始化函数
循环里有leak

【在 W***o 的大作中提到】
: 这是一个作业,是应用这个提供的data structure Steque 控制程序里object的流向和
: path。
: 源码贴这里了 http://pastebin.com/VzvcdJKu
: 我现在对如何使用这个data structure糊涂,从java过来的,不知道在C里面怎么初始
: 化一个object.
: 我自己想做一个下面的初始化测试:
: typedef struct steque_t steque;
: steque *stq;
: int i;
: for(i = 0; i < 10; i++)

n*****t
发帖数: 22014
3
1、typedef 写错了
typedef struct steque steque_t;
2、malloc 可以这么写:
steque_item *item = (steque_item *) malloc(sizeof(steque_item));
或者:
steque_item *item = (steque_item *) malloc(*item);
3、stq 初始化了吗?

【在 W***o 的大作中提到】
: 这是一个作业,是应用这个提供的data structure Steque 控制程序里object的流向和
: path。
: 源码贴这里了 http://pastebin.com/VzvcdJKu
: 我现在对如何使用这个data structure糊涂,从java过来的,不知道在C里面怎么初始
: 化一个object.
: 我自己想做一个下面的初始化测试:
: typedef struct steque_t steque;
: steque *stq;
: int i;
: for(i = 0; i < 10; i++)

d****i
发帖数: 4809
4
C里面不是必要的话尽量不要malloc吧,比如你的例子可以简单写成:
typedef struct steque steque_t;
steque_t stq;
int i;
struct steque_item item[10];
for(i = 0; i < 10; i++)
{
steque_enqueue(&stq, &item[i]);
}
假设你的steque_enqueue函数的signature是
void steque_enqueue(struct steque_t *, struct steque_item *);
注意typedef的顺序是:
typedef existing_type new_type_name;
n*****t
发帖数: 22014
5
malloc 的可以传递给其他函数,不然这个 queue 只能写成 globe 的了

【在 d****i 的大作中提到】
: C里面不是必要的话尽量不要malloc吧,比如你的例子可以简单写成:
: typedef struct steque steque_t;
: steque_t stq;
: int i;
: struct steque_item item[10];
: for(i = 0; i < 10; i++)
: {
: steque_enqueue(&stq, &item[i]);
: }
: 假设你的steque_enqueue函数的signature是

d****i
发帖数: 4809
6
depends on how you implement the function steque_enqueue and the queue

【在 n*****t 的大作中提到】
: malloc 的可以传递给其他函数,不然这个 queue 只能写成 globe 的了
n*****t
发帖数: 22014
7
这个当然 depends,就这个例子,enqueue 之后如果需要别的 function dequeue,还
是应该 malloc

【在 d****i 的大作中提到】
: depends on how you implement the function steque_enqueue and the queue
1 (共1页)
进入Programming版参与讨论
相关主题
typedef 的一个问题问个GSL的问题
请教一个rpcgen的问题difference between FILE and struct FILE
One question about Void pointer请问可以这样定义struct吗?
Questions about c code[合集] Interview Question
请教函数 INIT 怎么能free memoryask a question about struct in C programming
how to initialize this struct.typedef
为啥有人喜欢把_s结尾的结构typedef成_t结尾的,有讲究么?typedef struct的问题
sizeof()的问题一个简单的C编程问题
相关话题的讨论汇总
话题: steque话题: item话题: enqueue话题: 初始化话题: stq