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