Arrays 初始值设定项值过多和写访问冲突

Arrays 初始值设定项值过多和写访问冲突,arrays,pointers,memory,Arrays,Pointers,Memory,我试图回答一个日常编码问题。它制作一个完成的多米诺骨牌图案。例如,如果输入字符数组是“r,,,,l,,”,则完成的模式应该是“r,r,,,l,l,” 两个问题。在main中,当我将char数组声明为指针时,我会得到一个错误,即我对许多初始值设定项都有错误。我通过将输入数组声明为数组修复了这个问题。但我想用指针。所以这是不可接受的。第二个问题。在多米诺骨牌功能的第11行,列出[i]=“r”;产生写入访问冲突错误。为什么会这样 #include <iostream> #include &

我试图回答一个日常编码问题。它制作一个完成的多米诺骨牌图案。例如,如果输入字符数组是“r,,,,l,,”,则完成的模式应该是“r,r,,,l,l,”

两个问题。在main中,当我将char数组声明为指针时,我会得到一个错误,即我对许多初始值设定项都有错误。我通过将输入数组声明为数组修复了这个问题。但我想用指针。所以这是不可接受的。第二个问题。在多米诺骨牌功能的第11行,列出[i]=“r”;产生写入访问冲突错误。为什么会这样

#include <iostream>
#include <string>
#include <vector>

using namespace std;

char* Dominos(char* list, int size) {
    int i = 0, medianOffset = 0, count = 0, odd = 0, post = 0;
    if (list[i] == 'r') {
        while (list[i] != 'l') {
            list[i] = 'r';
            i++;
            count++;
            }
        medianOffset = (count - 1) / 2;
        odd = count % 2;
        post = i;
        if (odd == 1) {//putting lefts down when there is no dot seperating l and r
            for (int j = 0; j < medianOffset; j++) {
                list[i] = 'l';
                i--;
            }
        }
        else {//put a dot between l and r
            for (int j = 0; j < medianOffset; j++) {
                //list[i] = 'l';
                i--;
            }
            list[i] = '.';
        }
    }
    else if (list[i] == 'l') {

    }
    else {

    }
    return list;
}

int main() {

    char *c = { 'r', '.', '.', '.', '.', '.', '.', '.', '.', '.'};
    int size = 10;
    for (int i = 0; i < size; i++) {
        cout << c[i];
    }
    cout<<endl;
    char* list = Dominos(c, 10);

    for (int i = 0; i < 10; i++) {
        cout << *(list+i);
    }
    cout << endl;
    system("PAUSE");
    return 0;
}
#包括
#包括
#包括
使用名称空间std;
字符*多米诺骨牌(字符*列表,整数大小){
int i=0,medianOffset=0,count=0,odd=0,post=0;
如果(列表[i]=“r”){
while(list[i]!=“l”){
列表[i]=“r”;
i++;
计数++;
}
中位数偏移=(计数-1)/2;
奇数=计数%2;
post=i;
如果(奇数==1){//当没有分隔l和r的点时,放下左撇子
对于(int j=0;j这可以解决第一个问题


我认为第二个问题是由于未能在while循环中检查数组的
i

好的,这就是问题所在,它是seg故障。我认为。但是它进入了垃圾数组值。