如何解决在C ++中初始化构造函数内部的字符数组数组索引越界
我正在尝试在构造函数中初始化这两个字符数组。错误是字符数组buf和clientip,其他都很好。我在下面添加了整个构造函数的代码:
class server : public udp {
public:
server() {
clientLength = 0;
buf[1024] = {};
bytesIn = 0;
count = 0;
clientIp[256] = {};
portnumber = 0;
}
private:
int clientLength = sizeof(client);
char buf[1024];
int bytesIn;
int count = 0;
char clientIp[256];
unsigned short portnumber = 70000;
警告是:
*(错误)数组'buf [1024]'在索引1024处访问,超出范围。 [arrayIndexOutOfBounds]
(错误)在索引256处访问的数组'clientIp [256]',超出范围。 [arrayIndexOutOfBounds] *
我该如何解决这个问题?
解决方法
0
不是您想要的。它将访问buf[1024] = {};
的第1024个元素,并且默认情况下仅对此元素进行初始化,但是超出范围。
您可能想要的东西:
buf
在可能的情况下,您始终应该首选成员初始化列表。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。