0
如何修改(增加ASCII值)在char *
的二维数组中的每个字符?修改char *数组[x] [y]
我有现在这样的代码:
int riadky = 2;
int stlpce = 7;
char* x[riadky][stlpce];
int i,j;
for (i = 0; i < riadky; i++)
for (j = 0; j < stlpce; j++)
x[i][j] = "test";
x[0][1] = "something";
for (i = 0; i < riadky; i++){
for (j = 0; j < stlpce; j++){
printf("%s ", x[i][j]);
}
printf("\n");
}
printf("\n");
char * temp;
for (i = 0; i < riadky; i++) {
for (j = 0; j < stlpce; j++) {
for (temp= x[i][j]; *temp; temp++) {
(*temp)++; //segmentation fault
}
}
}
当我运行它,它出现segfaults与注释的行。
我试试这个,但仍...分割falult
char ***alloc_array(int x, int y) {
char ***a = calloc(x, sizeof(char **));
int i;
for(i = 0; i != x; i++) {
a[i] = calloc(y, sizeof(char *));
}
return a;
}
int main() {
int riadky = 3;
int stlpce = 7;
char ***x = alloc_array(riadky, stlpce);
int i,j;
for (i = 0; i < riadky; i++){
for (j = 0; j < stlpce; j++){
strcpy(x[i][j],"asdasd");
}
}
return 0;
}
您是否尝试过调试代码以查看代码中发生了什么? – 2014-11-21 23:11:36
不,bcs我没有任何IDE,只有记事本+终端 – Wulpo 2014-11-21 23:13:41
您是否试图增加'x'指向的每个字符串中的每个字母,或者只是每个字符串的第一个字母? – brycem 2014-11-21 23:15:17