无效的分配大小:4294967295字节 我正在尝试构建我的第一个C++应用程序,我正在尝试浏览一个表。但是,调试器会显示此错误消息 DWORD *dwWatch = new DWORD[taille]; // <-- The error appears here. for (LISTSTR::iterator i = listMe.begin(); i != listMe.end(); ++i, j++) { dwWatch[j] = m_DirWatcher.WatchDirectory(m_strDirectoryToMonitor, dwChangeFilter, pHandler, true, NULL, NULL); } DWORD*dwWatch=new-DWORD[taille];//

无效的分配大小:4294967295字节 我正在尝试构建我的第一个C++应用程序,我正在尝试浏览一个表。但是,调试器会显示此错误消息 DWORD *dwWatch = new DWORD[taille]; // <-- The error appears here. for (LISTSTR::iterator i = listMe.begin(); i != listMe.end(); ++i, j++) { dwWatch[j] = m_DirWatcher.WatchDirectory(m_strDirectoryToMonitor, dwChangeFilter, pHandler, true, NULL, NULL); } DWORD*dwWatch=new-DWORD[taille];//,c++,C++,taille的实际值是-1,因为无符号int的4294967295和有符号int的-1在内存中都是0xFFFFFF 那么看看它的值是什么时候变为-1的。请注意,一些标准函数在失败时返回-1。可能taille非常大。我们不可能知道它是如何变成这个样子的。在我看来,tailleis-1,然后它被视为一个无符号的值,从而变成一个非常非常大的数字。另外,无论如何,不要忘了在32位2的补码机上初始化循环中的j;本标准不作此类保证。

taille的实际值是-1,因为无符号int的4294967295和有符号int的-1在内存中都是0xFFFFFF


那么看看它的值是什么时候变为-1的。请注意,一些标准函数在失败时返回-1。

可能
taille
非常大。我们不可能知道它是如何变成这个样子的。在我看来,
taille
is-1,然后它被视为一个
无符号的
值,从而变成一个非常非常大的数字。另外,无论如何,不要忘了在32位2的补码机上初始化循环中的
j
;本标准不作此类保证。