gpt4 book ai didi

c++ - 通过指针错误访问数组中的数据

转载 作者:太空宇宙 更新时间:2023-11-04 11:51:31 25 4
gpt4 key购买 nike

我有 2 个 msg 格式的文件。 msg 格式在这里并不重要。

汽车信息

int speed;
int width;

cararr.msg

car mycar[];

我想打印所有存在的汽车的所有信息,但我不知道存在的汽车数量(数组有多大),所以我使用以下技术打印信息。

所以我这样做:

cararr* ptr2car;
for(int i=0;mycar[i] != '\0'; i++){
cout << ptr2car->mycar[i].speed <<endl;
cout << ptr2car->mycar[i].width <<endl;
}

尽管如此,我还是收到了错误。我不知道我做错了什么。我不知道应该使用什么方法来获取此输出。请帮忙

另外,当我可以使用 cararr inst2car 的实例并执行如下操作时,为什么我应该使用指向 cararr 的指针:

 cararr inst2car;
for(int i=0;mycar[i] != '\0'; i++){
cout << inst2car.mycar[i].speed <<endl;
cout << inst2car.mycar[i].width <<endl;
}

谢谢

最佳答案

一般来说,您需要确切地知道数组末尾的内容。您需要某种标记值用作分隔符来指示数组的结尾。

C 字符串中使用的'\0' 就是这种定界符的一个例子。

您需要确保数组中的最后一个元素是这样的分隔符并在条件中检查它。

对于这样笼统的问题,很难给你更具体的答案。

例如,如果您知道最后一个元素的速度为 -1,则可以使用它:

for(int i=0;mycar[i].speed != -1; i++) {

关于c++ - 通过指针错误访问数组中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18015150/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com