Gcc Regcomp抛出分段错误

Gcc Regcomp抛出分段错误,gcc,gdb,Gcc,Gdb,分段错误:在使用regcomp的行上,它抛出分段错误。 我已经使用gdb来运行这个程序 我正在努力: #include <string.h> #include <stdlib.h> #include <stdio.h> #include <regex.h> #define LINE_LENGTH 256 main() { char *c_char; char *cp; char *temp; regex_t regex; in

分段错误:在使用regcomp的行上,它抛出分段错误。 我已经使用gdb来运行这个程序

我正在努力:

#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <regex.h>
#define LINE_LENGTH 256

main()
{
  char *c_char;
  char *cp;
  char *temp;
  regex_t regex;
  int reg = 0;
  char f_input[] = {"path/path/.pc"};
  FILE *input;

 input = fopen(f_input, "r");
 while (fgets(temp, LINE_LENGTH, input) != NULL)
 {
  temp = (char*)malloc(sizeof(char)*LINE_LENGTH);
  if((cp = strstr(temp, "#define")) != NULL)
  {
    temp +=7;
    memset(c_char, '\0', sizeof(char)*50);
    c_char = strtok(temp, " ");
    reg = regcomp(&regex, "^[A-Z]", 0);
    reg = regexec(&regex, c_char, 0, NULL, 0);

    if (reg == REG_NOMATCH)
    {
      fprintf("%s should be in upper case.", c_char);
    }
  }
 }
}

我认为崩溃可能是由以下代码引起的:

memset(c_char, '\0', sizeof(char)*50);
程序启动时,
c_char
未初始化:

main()
{
  char *c_char;

然后在
while
循环中,当您第一次调用memset()时,“c_char”仍然未初始化。因此,您向
memset()

传递了一个无效指针。您的问题提供的信息约为零,无法回答。是什么让您认为您提供的代码行与实际崩溃有关?什么是崩溃堆栈跟踪?嗨,我无法粘贴代码或任何其他屏幕截图,所以我编辑了上面的代码。请查收。
main()
{
  char *c_char;