字符内存分配

时间:2016-11-06 15:01:16

标签: c arrays char malloc

我正在编写一个读取用户输入的程序,但我不想给它的大小设置任何上限,所以我决定分配它的内存像这样动态:

int main(int argc, char const *argv[]) {
  char ** INPUT;
  char * inputSize;
  int cl;
  printf("Enter your operation here: \n");
  scanf("%s", INPUT);
  for(cl = 0; INPUT[cl] != '\0'; ++cl);
  inputSize = (char *) malloc((cl + 1) * sizeof(char));

 return 0;
}

此程序编译并运行,但在输入输入后,它会终止并出现以下错误:

Segmentation fault: 11

我刚开始学习指针,所以我很感激有人指出我正在犯的错误。谢谢!

1 个答案:

答案 0 :(得分:0)

感谢您的帮助,我刚刚使用了getline,并在unsigned_t缓冲区中分配了所有内容。这很有效。