gpt4 book ai didi

创建一个 gets 函数,该函数在使用 getchar 函数按下返回时返回 char*

转载 作者:行者123 更新时间:2023-11-30 20:19:09 26 4
gpt4 key购买 nike

我有一段时间遇到这个问题了。我无法创建一个 gets(int maxChar) 函数来允许用户使用 get_char() 函数获取 char*。

我当前的代码:

char* gets(int maxChar) {
char a;
char* b;
int i;
for(i = 0; i<maxChar; i = i + 1){
a = getchar();
if (a != 0x0D) {putchar(a);} else {puts("\r\n");break;}
b[sizeof(b)] = a;
}
if (sizeof(b) > maxChar-1) {puts("\r\n");}
return b;
//if (b[sizeof(b)-1] != '')
}

get_char() 函数运行良好。

完整的kernel.c:https://pastebin.com/3bqTbHsv

最佳答案

改变

char* b;

char* b = (char *)malloc(maxChar);

b[sizeof(b)] = a;

b[i] = a;

另外,改变

if (sizeof(b) > maxChar-1) {puts("\r\n");}

if (i > maxChar-1) {puts("\r\n");}

所做的更改是:

  1. 您已经创建了一个指针,但尚未分配任何内存。因此就有了 malloc 语句。

  2. 对于 32 位编译器,
  3. sizeof(b) 将始终为 4。您需要数组索引,由 i 给出。

  4. 与 2 相同。

这些是您需要进行的基本更改,无需对您的逻辑进行任何更改。

关于创建一个 gets 函数,该函数在使用 getchar 函数按下返回时返回 char*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51429636/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com