【发布时间】:2015-01-17 18:48:57
【问题描述】:
我知道 - 另一个分段错误问题...
我正在尝试运行我教授的函数enterValue,但一直收到分段错误错误。是我做错了什么,还是我在他的代码中没有发现一个错误?请注意,声明int* length; 实际上是用他的原始代码编写的int length;。鉴于最后一个参数 valuePtr 旨在成为一个指向 int 的指针,这就是我认为应将参数 length 定义为。
#include <stdlib.h>
#include <stdio.h>
#define MAX_LINE 256
char line[MAX_LINE];
int* length;
void enterValue (const char* descriptionPtr,
int min,
int max,
int* valuePtr
)
{
do
{
printf("Please enter the %s (%d-%d): ",descriptionPtr,min,max);
fgets(line,MAX_LINE,stdin);
*valuePtr = strtol(line,NULL,10);
}
while ( (*valuePtr < min) || (*valuePtr > max) );
}
int main ()
{
enterValue ("number of numbers", 1, 256, length);
return(EXIT_SUCCESS);
}
当我运行它时,我得到以下信息:
Please enter the number of numbers (1-256): 4
Segmentation fault
【问题讨论】:
标签: c segmentation-fault