c++ - 如何检索此数组的大小?

标签 c++ arrays size

我正在使用 IMidiQueueIMidiMsg 对象排队/添加到我的 IMidiQueue mMIDICreated;

有时,我想检索我在上面添加的项目数。我试过这个:

char buffer[50];
sprintf(buffer, "size %d\n", sizeof(mMIDICreated) / sizeof(IMidiMsg));
OutputDebugString(buffer);

但是在添加了 8 个项目之后:

for (int i = 0; i < 4; i++) {
    IMidiMsg* one = new IMidiMsg;
    // ...
    mMIDICreated.Add(one);

    IMidiMsg* two = new IMidiMsg;
    // ...
    mMIDICreated.Add(two);
}

它返回 2,而不是 8。我哪里错了?

最佳答案

sizeof将返回对象或类型本身的大小,它是一个常量,在编译时计算,与只有在运行时才能知道的项数无关。

你应该使用IMidiQueue::ToDo:

Returns the number of MIDI messages in the queue.

关于c++ - 如何检索此数组的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36403098/

相关文章:

c++ - 存储特征数组列表

javascript - JavaScript 数组是否有类似于 forEach 的可链接方法?

c++ - 我将如何覆盖打印的二维数组以模拟 'updates'

安卓字符大小

jquery - 我想要一个大小为 40mm X 40mm 的 div 在任何屏幕上并且独立于缩放?

c++ - CRichEditCtrl::StreamIn 丢失格式

c++ - enable_if boost::fusion 可调用

c++ - 'char*'的模板参数推导

sql - 通过过滤找出mysql中json数组中所有元素的总和

css - 如何以像素为单位设置 WordPress RSS 提要的图像大小?