字符内存分配

标签 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

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

最佳答案

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

关于字符内存分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40450769/

相关文章:

java - 如何计算字符串中相同单词的数量并获取第一个相等单词的索引?

java - 读取具有多个不同类的 JSON 作为响应

c - 二维字符数组

c++ - Printf() - 打印字符限制

php - C 程序和 PHP 程序之间的通信

php - 在 PHP 中将 IP 地址数组中的数字加一

C# - 将文本文件的字符放入二维数组

c - 字符缓冲区中的许多缓冲区

c - 如何使用 NetBSD 构建交叉编译 NetBSD 工具链

c - 是否可以在C中只有头文件而没有源文件