指向发送到另一个功能后没有更新指针

时间:2017-03-27 04:03:57

标签: c linked-list

我试图制作一个简单的链接列表程序,当我试图从列表中弹出第一个元素时,它没有弹出,它仍然是列表中的第一个元素,请帮我解决这个错误。

以下是必需的文件和主要代码。 感谢。

stack.c stack.h

var mainSchema = new Schema({
    mainProperty: {type: String, required: true},
    subs: {
      type: [subSchema],
      required: true,
      validate: [notEmpty, "Custom error message"]
    }
});

function notEmpty(arr) {
  return arr.length > 0;
}

1 个答案:

答案 0 :(得分:2)

错误位于getsize函数的以下行:

while( (temp->next) != NULL){

这里temp是一个用另一个指针s的值初始化的指针。 (temp和s指向同一地址)。但是,在将s传递给getsize之前,您尚未将任何内存分配给next。因此,访问stack成员会导致seg错误。

<强>解决方案

在让用户选择操作create之前,请初始化足够的内存。 stack.c中有一个create函数,用于为堆栈分配内存。但你甚至没有称这个功能。因此,要修复错误,只需在程序开头调用.c即可。

此外,您不应包含private static boolean pathSum(TreeNode root, final int sum, int sumSoFar) { if (root == null) return false; if (root.left == null && root.right == null) return sumSoFar + root.val == sum; return pathSum(root.left, sum, sumSoFar + root.val) || pathSum(root.right, sum, sumSoFar + root.val); } 文件。您应该包含头文件* .h。 (作为一种良好做法)。