你好欢迎回来｡ 这将是我们最后一次作业, 也是我们教鞭课的最后一次挑战｡
在这个挑战中, 我希望您了解动态内存分配的工作原理｡
所以你需要malloc一个字符串｡
这将是非常基本的｡
但是它会让你理解动态内存分配的整个概念｡
动态内存分配的优点是什么？
这意味着您可以在需要时分配足够的内存｡
你不必浪费记忆｡ 如果您需要更多内存, 可以重新分配｡
这个任务只会让你使用malloc｡
所以在这个挑战中, 你要写一个程序来测试你对动态内存分配的理解｡
我想让你写一个程序, 让用户输入一个文本字符串｡
因此, 您需要使用scanf｡ 你也可以使用git
s, 我们还没有讨论过很多, 但是标准输入流上的git s或f
git s将允许你读取包含空格的字符串｡
记住, scanf只会读取字符串到一个空格｡
如果你使用git s, 你可以读取多个由空格分隔的字符串, 无论哪种方式都可以,
scanf或git s都可以｡
您将让用户输入一个字符串｡ 程序将打印输入的文本｡
这看起来可能很容易, 但这里的区别是程序将利用动态内存分配｡
您还可以让用户输入他们正在输入的字符串的限制,
然后您可以将其用于malloc, 这样您就知道要分配多少字节｡
你应该创建一个字符指针, 只有一个字符指针, 没有字符数组｡
我要你分配内存｡
请记住, 当您创建字符数组时, 内存已根据您放入括号中的大小自动为您分配｡
同样, 它的一个很大的缺点是如果你试图输入比你输入的大小更大的东西, 你必须重新编译｡
这是静态的｡ 该内存在编译时分配｡
当你运行程序时, 动态内存被分配｡
因此, 您可以根据用户输入的内容来确定要分配多少内存｡
因此, 再次要求用户输入一个数字,
表示要为字符串分配的字节数｡
然后要求使用者在中输入字串｡
你必须正确地分配内存,
然后把字符指针传递给scanf或者git s, 然后基本上只显示输入的文本｡
最后, 不要忘记所有重要的免费功能｡
你总是想释放你的内存当你完成使用它,
你想确保你这样做, 使其他程序可以利用该内存｡
内存是一种稀缺资源, 特别是在嵌入式系统真实的时程序上, 所以不要占用内存,
释放它｡
祝你好运, 我会在下一节课中给出答案｡ -谢谢—谢谢