string - 显示二维字符串数组的索引作为它们的值。例如arr[2][1] = "21"和 arr[3][1] = "31"等等

标签 string multidimensional-array

基本上我想创建一个二维字符串数组 char* grid[4][4],并希望将它们的索引显示为它们的值。例如 grid[2][1] 将使用字符串“21”作为其值。 但他们的代码中有一些错误,在运行时它给我段错误错误。请帮帮我。

char* grid[DIMENSION][DIMENSION];

for (int i = 0; i < DIMENSION; i++)
{
    for (int j = 0; j < DIMENSION; j++)
    {   
        char* c = malloc(3 * sizeof(char));
        c = "00\0";            
        c[0] = c[0] + i;
        c[1] = c[1] + j;
        grid[i][j] = c;

    }
}        

for (int i = 0; i < DIMENSION; i++)
{ 
    for (int j = 0; j < DIMENSION; j++)
    {
        printf("%s\t", grid[i][j]);         
    }

    printf("\n");

}

return 0;

}

最佳答案

替换:

 char* c = "00";
 c[0] = c[0] + i;

char c[] = "00";
c[0] = c[0] + i;

通常不可能更改字符串文字的值。使用 gcc,您可以通过指定 -fwritable-strings 来更改此行为。许多编译器会将字符串文字放入不可写的段中,但通过将 c 声明为字符数组,可以保证它是可写的。 (不过,现在您在分配grid时遇到问题,因此您可能需要使用malloc。)

char *c = xmalloc(3);  /* xmalloc wraps malloc with error checking */
c[0] = '0' + i;
c[1] = '0' + j;
c[2] = 0;

关于string - 显示二维字符串数组的索引作为它们的值。例如arr[2][1] = "21"和 arr[3][1] = "31"等等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13769505/

相关文章:

c - 在 C 中拆分不带引号的字符串

string - Julia - 修剪字符串空格并检查长度

java - 使用可扩展字符串设置两个第一个单词的样式

c - 将数组的大小扩展到越来越多的变量

c - 如何在c中用空格初始化二维字符数组

c - 删除 C 字符串的第一部分

ios - Objective C 中的 UserDefaults 数据验证

c# - 二维数组属性

javascript - JS多维数组空间场

PHP:多维数组,多维键?