我有一个名为' data'的数据类型这是一个无效指针。它被用作另一个函数的参数,这允许程序员将任何数据类型作为参数发送到该特定函数。
如何组合我的分配,所以我不必使用4个不同的变量,而只使用2个?我在谈论 d,d2,dd和dd2
(OBS!q& q2是堆栈名称。忽略它们。我唯一的问题是d,d2,dd和dd2。
data d = (int*) malloc(sizeof(int));
*(int *)d = 7;
data d2 = (int*) malloc(sizeof(int));
*(int *)d2 = 7;
data dd = (int*) malloc(sizeof(int));
*(int *)dd = 8;
data dd2 = (int*) malloc(sizeof(int));
*(int *)dd2 = 8;
stack_add(q, d); /* Adds an item so the stack is not empty.*/
stack_add(q2, d2); /* Adds an item so the stack is not empty.*/
if (!stack_isEmpty(q)) {
/* Removes an item and then adds an item from the first stack*/
stack_remove(q);
stack_add(q, dd);
/* Adds an item and then removes one from the second stack*/
stack_add(q2, dd2);
stack_remove(q2);
如何组合分配以使其看起来更好?
答案 0 :(得分:1)
您的分配不好,因为
NULL
sizeof(*d)
。它可能还可以,但因为你没有发布data
是什么。您似乎有typedef
指针,这是不好的做法。
您应该发布stack_firstvalue()
的代码,因为它可能存在问题所在。
简单来说,您发布的代码中存在非常明显的错误,并且您没有发布stack_firstvalue()
的有趣代码,因此可以自然地认为它会包含错误