C++ char* 配列/char** をトラバースします

C++ char* 配列/char** をトラバースします

進入禁止

const char* array[] = {
    
    "This", "is", "an", "array"};
char** address = array;

for (int i = 0; address && address[i]; i++)
{
    
    
	cout << address[i] << endl;
}

実行結果
デバッグ
for ループでi変数を追跡すると、 i が実際に配列内の要素数を超えており、その結果、境界外アクセスが発生していることがわかります。

正しい方法

const char* array[] = {
    
    "This", "is", "an", "array"};

for (int i = 0; i < sizeof(array) / sizeof(char*); i++)
{
    
    
	cout << array[i] << endl;
}

おすすめ

転載: blog.csdn.net/pythonandjava/article/details/124536364