用C语言

时间:2015-11-03 21:49:54

标签: c arrays string malloc

当我运行这个程序时,它会崩溃。 我想将一个字符串从一个字符串复制到另一个字符串。 你能帮助我吗? 例如:我想要" wello"如数组[0]而不是"你好"

int main()
{
    int N=3;
    char *array[10];
    array[10]=malloc(N*sizeof(char));
    array[0]="hello";
    array[1]="wall";
    array[2]="dinner";
    array[0][0]=array[1][0];
    printf("array[0][0]: %c\n", array[0][0]);
    printf("array[0]= %s, array[1]= %s, array[2]= %s", array[0], array[1], array[2]);
    return 0;
}

2 个答案:

答案 0 :(得分:0)

你在这里遇到了一些问题:

  1. array只有10个元素,因此没有索引10
  2. 您没有为分配到array的前3个元素的字符串分配空间,因此可能无法修改它们。
  3. 如果你只使用3,为什么array有10个元素?如果你从不使用它,为什么要为11号分配空间呢?

答案 1 :(得分:0)

数组中的所有字符指针都没有指向有效的内存位置。您需要为每个指针执行malloc以在其中存储字符串。 此外,array[10]超出了您为array声明的索引(0到9)。