strtok函数后的分段错误

时间:2017-12-01 18:02:14

标签: c segmentation-fault strtok

mkdir new

对于行arglist[count] != NULL(仅作为示例) - 此处显示的代码末尾的主函数在再次比较条件(<div class="container" ng-controller="SampleController"> <div class="col-md-5"> <div class="form-area"> <form role="form" name="myForm" ng-submit="submitForm(myForm.$valid)" novalidate> <div class="form-group"> <select name="service_id" class="form-control" ng-model="ServiceID" ng-options="service.ServiceID as service.ServiceName for service in services" required> <option value="">Select Service</option> <div class="red" ng-show="myForm.service_id.$invalid && serviceNotSelected">You must select a service.</div> </select> </div> <button type="submit" id="submit" name="submit" class="btn btn-primary pull-right">Submit Form</button> </form> </div> </div> </div> )和获取分段错误之前经过2循环。

奇怪的是,没有其他功能,main工作正常,没有分段错误。 有人有想法吗?调试没有帮助...

1 个答案:

答案 0 :(得分:1)

您正在使用未初始化的变量。这会导致细微的错误,具体取决于输入流的初始值和长度。

getline的工作原理如下:

  • 从流中读取字符,直到换行符或达到我们的大小限制
  • 如果需要更多字符,则重新分配缓冲区,如果换行符则返回
  • 重复

因此,如果size的初始值为0,它首先要做的是重新分配,使用'line'的null值并获取一个新的缓冲区。但是,如果size不是0,它会踩踏内存。直到以后这可能不是问题,但是一旦内存损坏,就完成了。