c-具有字符串和固定大小的动态内存分配



我试图为字符串分配内存,但无论我做什么,我总是为七个字符分配内存,甚至改变大小。有人能帮忙吗?

#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 possiblen");
exit(0);
}
printf("Enter the string: ");
fgets(s, sizeof(s), stdin);
printf("String: %sn",s);
free(s);
}

sizeof(s)返回的指针大小为8。在您的情况下,您应该用这个fgets(s, n + 1, stdin);重写这个fgets(s, sizeof(s), stdin);

相关内容

  • 没有找到相关文章

最新更新