![]() |
1
18
如果您有一个结构数组,那么就没有指针,因此检查空值是没有意义的。 n个结构的数组实际上是内存中一个接一个排列的结构中的n个。 可以将其更改为指向结构的指针数组,将它们全部初始化为空,然后根据需要创建它们吗?我会调查的 为什么? 你想先检查一下是否为空-感觉你做错了什么。 (编辑添加到问题的代码) 您没有展示如何定义testerray,但我怀疑您已经完成了以下操作:
如果确实需要与空进行比较,请尝试以下操作:
此时,所有条目都不会为空,但如果在代码的后面执行以下操作:
然后,您将能够通过问题中提供的循环检测到这一点。 你能澄清吗? 为什么? 要与空值比较吗? (而且它还在不断增长——这次是为了解决有关初始化的问题): 正如其他人提到的,与空值比较并不是判断某个东西是否初始化的有效方法。最好的方法可能是以这样一种方式编写代码,即您保证它将被初始化。 也许最好的办法是在测试结构上放置一个默认构造函数(可以用C++来做,但不能用C来做)。类似:
会做得很好的。现在,保证数组中的所有结构都存在,并用x值设置为0初始化。 |
![]() |
2
4
我不明白;如果您有一个结构数组,那么这些位置中的任何一个都可以为空?空是一个整数。 |
![]() |
3
2
您可以通过比较0或使用布尔运算符(如…)来测试指针是否为空。
如果您有一个指针数组,请记住您以前需要将任何未分配的元素(指针)显式初始化为空:如果您没有初始化它们,它们将包含随机(非空)值:
|
![]() |
4
0
如果您有结构指针数组,那么可以检查是否为空。 |
![]() |
5
0
在调试时,编译器可能正在将值设置为某个幻数。 例如,如果在Visual Studio 2008中运行以下命令,并在调试模式下编译,并在“return 0;”语句处设置断点,“foo”指向0xcccccc。
|
![]() |
6
0
你为什么不用
|
![]() |
7
0
因为任何原因,如果必须测试结构对象是否为空 你可以超载操作员==
|
![]() |
AstralHex · 矩阵乘法代码工作不正常 3 月前 |
![]() |
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 3 月前 |
![]() |
Die4Toast · 递归调用成员箭头运算符-> 3 月前 |
![]() |
Anka Hanım · 关于结构和动态数组地址的问题 3 月前 |