gpt4 book ai didi

c - 我这里需要动态内存分配吗?

转载 作者:行者123 更新时间:2023-11-30 20:56:34 24 4
gpt4 key购买 nike

这个主题对我来说似乎很困惑..尝试在维基百科中阅读它,但仍然不明白..这是我的代码...

#include <stdio.h>

main () {
char name[10];
int i=0;
for (i=0;i<11;i++){
scanf("%c",&name[i]);
printf("%c",name[i]);
}
}

问题是我的程序在满足边界条件(i=10)之前永远不会退出。我希望程序在输入字符串后立即退出,无论是否满足边界条件(i=10) !我需要动态内存分配吗?

最佳答案

动态分配不会产生影响;你需要做的是计算你读了多少个字符,当空间不足时停止阅读。在本例中,将 11 切换为 sizeof name

如果你想在他们按 Enter 时停止,你必须检查你刚刚读到的字符是否是 \n,如果是就停止。如果输入关闭(这将通过 scanf 的返回值为 0 或负数来指示),停止也是明智的做法。

在 C 语言中,没有内置函数可以根据用户键入的内容分配尽可能多的内存;您必须自己编写一个函数来执行此操作,或者使用其他人的函数。有一个名为 getline 的 POSIX 函数可以执行类似的操作。

关于c - 我这里需要动态内存分配吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23818288/

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