struct PhaseShiftPin {
int _PSPpin_index; //PSP = Phase Shift Pin
int _PSPvalue;
char _PSPname[512];
};
struct PhaseShiftPin *_PhaseShiftPin[500000];
int p3int = 0;
strcpy ( _PhaseShiftPin[i]->_PSPvalue, p3int );
上面的代码只是我完整代码的一部分。 当我编译完整程序时发生错误strcpy'使指针从整数而不进行强制转换 位于行
strcpy ( _PhaseShiftPin[i]->_PSPvalue, p3int );
我引用了这里的帖子makes pointer from integer without a cast with strcpy在我尝试使用 strncpy 并按照帖子中显示的方法进行操作后,我仍然编译失败。希望您能指导我解决我的问题。谢谢。
最佳答案
strcpy
不适合解决此问题。它需要两个参数。第一个是指向 char
的指针,第二个是指向 const char
的指针。然后它将第二个指针指向的字符串复制到第一个指针指向的内存中。
就您而言,您不是在复制字符串,而是在复制 int。你的最后一行应该是:
_PhaseShiftPin[i]->_PSPvalue = p3int;
但是,C99 标准保留以下划线 ('_') 开头的标识符,后跟大写字母或另一个下划线以供实现。因此,您不得以这种方式命名标识符。
关于c - 错误 "' strcpy' 使指针来自整数而不进行强制转换”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17803295/