【发布时间】:2011-11-23 20:36:52
【问题描述】:
如果我有两个这样的数组:
short** x;
short** y = functionThatReturnsAnArray();
在这种情况下sizeof(x) == sizeof(y)。
两者都是 4,我认为这是因为外部数组只是一个指针数组,因此实际上没有分配任何 RAM。
我怎样才能知道 x 没有被赋值?
谢谢,
乔
【问题讨论】:
-
x和y的大小在您的情况下将始终为4,即使它们确实分配了内存,因为sizeof只返回其参数的大小,并且无论指针指向什么,指针的大小始终为4(在您的情况下)。 -
delnan - 未分配给
-
... 在 C 中,没有办法知道指针指向多少东西,对吧?您还需要将存储中元素的数量作为元数据与指针一起传递。
-
@user940516 通常人们会给一个指针赋值
NULL(即0)来表示它没有指向任何东西。你应该做short** x = NULL,然后检查你是否将它设置为指向任何东西,做if (x != NULL) // is assigned -
@user940516:你应该编辑你的答案,让任何阅读问题的人都清楚。
标签: c multidimensional-array initialization