Segmentaion故障调用方法第二次C++

Pat*_*yer -4 c++ methods fault

如果我添加第二次调用setColor我得到一个分段错误.我想也许这个方法在某种程度上改变了数组指针,但我不确定为什么.

#include <iostream>

using namespace std;

struct Color {
    int red;
    int blue;
    int green;
};

void setColor(Color **arr, int index, int red, int blue, int green) {
    Color *ptr = arr[index];
    (*ptr).red = red;
    (*ptr).blue = blue;
    (*ptr).green = green;
}

int main() { 
    Color *arr[3];
    setColor(arr, 0, 12, 23, 34);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

nne*_*neo 6

arr是一个未初始化的指针数组.你是"幸运的"它可以工作,因为你调用了未定义的行为.