将字符数组设置为彼此相等的方法不起作用
Method to set a char array equal to each other wont work
对于我的家庭作业,我需要使用指针在 c++ 中导航数组。我编写的用于将私有对象成员变量设置为等于传递char[]
char m_make[]
的 set 函数无法正常工作。当我尝试运行我的程序时,它似乎在我调用setMake()
函数后终止。我做错了什么?
函数声明:(包含在名为RentalCar
的对象中(void setMake(char make[5]);
这是setMake()
的代码:
void RentalCar::setMake(char make[5]){
for(int i = 0; (make+i) != ' ';i++){
*(m_make+i) = *(make+i);
}
}
当我调用setMake()
无论我传递什么函数时,输出Process returned
后跟一个非常大的数字。
在你的 for 循环中,你正在检查(make+i) != ' '
它基本上在每次迭代时都会向make
添加i
。make
是数组第一个字符的内存地址。
话虽如此,(make+i)
永远不会== ' '
,因为(make+i)
是一个内存地址,而你的程序可以访问的地址永远不会是 NULL,这意味着它是一个无限循环。
您需要使用指针表示法来实际取消引用(make+i)
,以便它检查内存(make+i)
中的值,而不是地址本身。意味着,你必须做:
*(make + i) != ' '
获取值并进行比较,就像设置值一样:
*(m_make+i) = *(make+i);
相关文章:
- 基本加密和解密方法不起作用 C++ 11.
- 结构/方法不起作用
- 将字符数组设置为彼此相等的方法不起作用
- ConvertToReferencePoint 方法不起作用,获取作业参数的 NULL (HyperV 2016)
- 为什么方法不起作用?
- C boost :: bimap insert()方法不起作用
- 为什么我的将向量保存到文件然后再次读出的方法不起作用?
- 为什么这种交换方法不起作用
- Qt. 方法显示文本() 如果我在 QStyledItemDelegate 中定义了 paint() 方法不起作用
- 非递归二进制树插入()方法不起作用
- C++中的Friend方法不起作用
- 为什么这种删除文件夹中文件的方法不起作用?
- 二叉树递归插入方法不起作用
- CGI POST方法不起作用
- 为什么我的 pow 方法不起作用?
- 类方法不起作用
- 使用ctypes从Python调用C++方法不起作用
- C++虚拟方法不起作用
- 为什么用double&&初始化对象方法不起作用?
- 使用虚拟重写基类方法不起作用