如何解决具有固定大小的字符串的动态内存分配
我正在尝试为字符串分配内存,但是无论我做什么,我总是为七个字符分配内存,甚至更改大小。有人可以帮忙吗?
#include <stdio_ext.h>
#include <stdlib.h>
int main()
{
char *s;
int n;
printf("string size? ");
scanf("%d",&n);
__fpurge(stdin);
s = (char *)malloc((n+1) * sizeof(char));
if (!s)
{
printf("not possible\n");
exit(0);
}
printf("Enter the string: ");
fgets(s,sizeof(s),stdin);
printf("String: %s\n",s);
free(s);
}
解决方法
sizeof(s)
返回的指针大小为8,在这种情况下,应使用此fgets(s,sizeof(s),stdin);
重写此fgets(s,n + 1,stdin);
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。