新系统中调用strcpy(char*,char*)运行出错了,在老系统中是好的(请教)
例如:
#include <stdio.h>
#include <stdlib.h>
int main() {
char* fmtstr = "000.000";
char* fmttype = "ZZZ.Z99";
strcpy(fmtstr , fmttype);
printf("%s\n", fmtstr);
}
现在做一个程序的移植,在老系统(HP-UNIX 11)上是可以正常运行上面的例子,可是移植到新系统(HP-UNIX 11i v3)上面,虽然能编译通过,但是运行时在strcpy那句出现致命错误Segmentation fault (core dumped).如果将char* fmtstr改为char fmtstr[],是能正常运行的.
所以请问大家,为什么原来用char* fmtstr可以,而现在不可以了呢.是编译器的问题吗或者是编译器的option问题吗,不解.望高手告知一二.