我正在编写一个读取用户输入的程序,但我不想对其大小给出任何上限,因此我决定像这样动态分配它的内存:
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/