用g++编译时遇到如下问题:
报错内容:
warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
h_file = open_file_std(file1,"wb");
这是我的原代码;
//////////////
char *file1;
FILE *h_file;
strcpy(file1,"Hmatrix");
h_file = open_file_std(file1,"wb");
FILE *open_file_std( char *fname, char *mode)
我的Ubuntu版本是14.04
感谢各位大神的解答~~~
字符串常量和字符型指针的转化问题
-
- 帖子: 6
- 注册时间: 2015-11-22 17:26
- 系统: ubuntu14.04
- astolia
- 论坛版主
- 帖子: 6443
- 注册时间: 2008-09-18 13:11
Re: 字符串常量和字符型指针的转化问题
"xxx"字符串对应的参数类型请换成const char *
-
- 帖子: 6
- 注册时间: 2015-11-22 17:26
- 系统: ubuntu14.04
Re: 字符串常量和字符型指针的转化问题
把file1改成 const char*以后,编译运行:astolia 写了:"xxx"字符串对应的参数类型请换成const char *
[color=#FF4000]BigGirth.c: In member function ‘int BigGirth::writeToFile_Hmatrix111()’:
BigGirth.c:1097:32: error: invalid conversion from ‘const char*’ to ‘char*’ [-fpermissive]
strcpy(file1,"Hmatrix");
^
In file included from BigGirth.c:5:0:
/usr/include/string.h:129:14: error: initializing argument 1 of ‘char* strcpy(char*, const char*)’ [-fpermissive]
extern char *strcpy (char *__restrict __dest, const char *__restrict __src)
^
BigGirth.c:1100:36: error: invalid conversion from ‘const char*’ to ‘char*’ [-fpermissive]
h_file = open_file_std(file1,"wb");
^
In file included from BigGirth.c:25:0:
open.h:16:7: error: initializing argument 1 of ‘FILE* open_file_std(char*, char*)’ [-fpermissive]
FILE *open_file_std (char *, char *);
^
BigGirth.c:1100:36: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
h_file = open_file_std(file1,"wb");
错的更多了啊
- astolia
- 论坛版主
- 帖子: 6443
- 注册时间: 2008-09-18 13:11
Re: 字符串常量和字符型指针的转化问题
看来你的C水平真是菜的没边了,参数是指什么都不清楚。好吧,我再说明确点
"xxx"字符串作为函数实参时,对应的函数形参类型请换成const char *
"xxx"字符串作为函数实参时,对应的函数形参类型请换成const char *
-
- 帖子: 6
- 注册时间: 2015-11-22 17:26
- 系统: ubuntu14.04
Re: 字符串常量和字符型指针的转化问题
谢谢前辈的悉心教导,现在这个问题让您说的改好了。astolia 写了:看来你的C水平真是菜的没边了,参数是指什么都不清楚。好吧,我再说明确点
"xxx"字符串作为函数实参时,对应的函数形参类型请换成const char *