C ++ Primer第5版:演習3.27 3.28 3.29 3.30 3.31 3.32 3.33

演習2.37

  (a)非法,buf_size不是常量表达式
  (c)非法,txt_size()函数返回值并不是常量表达式,返回值改为constexpr int
  (d)非法,字符串字面值后自带'\0',超出范围

演習
3.28saおよびsa2配列の各要素は空の文字列であり、文字列クラスには対応するデフォルトコンストラクタがあります。
各要素の値は0です。関数の外部で定義された組み込み型には初期値があります
。ia2各要素には値がありません。対応するアドレスが返されます

演習3.29
割り当てられたスペースは固定されており、要素を追加するのは不便であり、柔軟性は低く
なります。使用する場合は、配列のサイズを指定する必要があります。

演習3.30
インデックスは0から始まり、ia [10]は範囲外です、バッファオーバーフローエラー

演習3.31

#include<iostream>
using namespace std;

int main()
{
    
    
	int a[10];

	for (size_t i = 0; i != 10; ++i)
		a[i] = i;
}

演習3.32

#include<iostream>
#include<vector>
using namespace std;

int main()
{
    
    
	int a[10];

	for (size_t i = 0; i != 10; ++i)
		a[i] = i;

	int b[10];
	auto ret = copy(begin(a), end(a), begin(b));
	
	vector<int> c;
	for (size_t i = 0; i != 10; ++i)
		c.push_back(a[i]);
}

演習3.33
バッファオーバーフロー

おすすめ

転載: blog.csdn.net/Xgggcalled/article/details/109134316