c语言 - 我无法理解教授关于 malloc 的代码



教授给我做一个关于malloc的作业,动态记忆分配... 所以他给了我一些关于代码的提示,但我无法理解他的代码和提示。 我认为我的代码需要另一个"def"或"for 循环"...... 无论如何。

问题现在我可以gets_s一些带有指针的字符串。 但我无法构建。 像外星语言一样打印... 本页的最后一页我希望这段代码能正常工作。 对于 (j=0;J<3;j++( printf("your sentence is %s ", *parray[i](

我和朋友一起尝试了一些代码。 他也想不通。 教授告诉我这段代码是给初学者的,"很容易解决">

#include<stdio.h>
#include<stdlib.h>
void main() {
char* parray[3];
int i, j;
char str[70]; // temporary save place
for (i = 0; i< 3; i++) {        //
printf("sentence, please. : ");
gets_s(str, sizeof(str));   //dynamic memory allocate
parray[i] = (char*)malloc(sizeof(char)**str);
printf("n");

free(parray[i]);

我希望这段代码有效。

for (j=0;j<3;j++)
printf("your sentence is %s ", *parray[i])

您应该分配输入字符串中的字符数,+1 表示空终止符。

parray[i] = malloc(strlen(str)+1);

然后将数据从临时str复制到新的内存位置。

也避免gets_s,改用fgets。C11 的边界检查接口通常支持得很差,但这个特定的功能在使用过时的gets重写旧代码时只是一些占位符。

相关内容

  • 没有找到相关文章