我正在编写一个读取用户输入的程序,但我不想给它的大小设置任何上限,所以我决定分配它的内存像这样动态:
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
我刚开始学习指针,所以我很感激有人指出我正在犯的错误。谢谢!
答案 0 :(得分:0)
感谢您的帮助,我刚刚使用了getline,并在unsigned_t缓冲区中分配了所有内容。这很有效。