array5.c

来自「gcc-you can use this code to learn somet」· C语言 代码 · 共 53 行

C
53
字号
// { dg-do run }// Copyright (C) 2002 Free Software Foundation// Contributed by Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>// Incorrect construction and destruction of multi-dimensional// array of class.extern "C" void abort();extern "C" int printf(const char *, ...);int count;int num;struct A{	A()	{		if (count == num)			throw "";		count++;#ifdef PRINT		printf("ctor %p\n", static_cast<void *>(this));#endif	}	~A()	{		count--;#ifdef PRINT		printf("dtor %p\n", static_cast<void *>(this));#endif	}};struct Array{	A array[2][2][2];};int main(){	for (num = 0; num <= 8; ++num) {		count = 0;		try {			Array A;		}		catch (...) {		}		if (count != 0)			abort();	}}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?