我想通过标准输入读取字符串,所以我选择了 fgets。但我收到此警告:初始化从指针生成整数而不进行强制转换。
这是我的代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stddef.h>
#define MAX_LINIA 301
int main(int argc,char *argv[]){
char *buffer;
printf("Enter the input\n");
if (fgets(buffer,MAX_LINIA-1,stdin)==NULL) printf("Error")
else printf("%s", buffer);
return 0:
}
最佳答案
您在使用buffer
时未初始化它,这会导致未定义的行为。
您不需要使用指针,可以使用 char 数组代替(给定已定义的最大大小):
char buffer[MAX_LINIA];
fgets 最好写成:
if(fgets(buffer,sizeof(buffer),stdin)==NULL)
关于c - 警告初始化从指针生成整数,无需使用 fgets 进行强制转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41590361/