我目前有一个函数,它以char数组的形式接受用户输入。我试图通过下面使用的函数解析输入,以及为所使用的指针分配内存。然而,我期望从用户那里得到的输入是两个字符“ab”,后面跟着一个整数。当我尝试将其转换为整数时,程序继续执行seg故障。我试着分配更多的内存,改变数组的大小,任何帮助将不胜感激!字符串函数返回seg错误
int input(char input[10])
{
int val;
char *firstW,*secondW;
firstW = malloc(sizeof(10));
secondW = malloc(sizeof(10));
firstW = strtok(input," ");
firstW = strstr(input,"ab");
secondW = strtok(NULL, " ");
val = atoi(secondW);
//When atoi is called, secondW contains any integer for instace "10", but of course as a string type
//trying to convert string to integer, but returns seg fault
secondW声明在哪里?你打电话给atoi时有什么? – 2015-02-10 01:08:23
你从不检查'secondW!= NULL'。 – 2015-02-10 01:13:50
如果'input'源自字符串文字,那可能是问题---'strtok'修改'input'(并且修改字符串文字是未定义的行为)。在附注中,'firstW'和'secondW'的'malloc'是多余的---'strtok'返回一个指向(修改)'input'的指针。 – 2015-02-10 01:15:25