将指针存储的字符串文字复制到字符串数组中(C语言)

时间:2017-06-18 23:44:29

标签: c arrays

这与earlier question I asked.

密切相关

为了模拟我正在编码的程序的操作,我试图让以下代码片段起作用。我需要将声明为const char*的字符串(例如下面的“Eta”)添加到二维数组char[][]中(例如{“Alpha”,“Gamma”,“Epsilon”})。这是我的几次尝试之一:

#include <stdio.h>
#include <string.h>

int main() {
        char lines[4][10] = {"Alpha", "Gamma", "Epsilon"};
        const char *p = "Eta";
        strcpy(lines[4], p);
        for (int i = 0; i < 4; i++) {
                printf("%d\n", i);
                printf("%s\n", lines[i]);
        }
        return 0;
}

这导致“堆栈粉碎”错误报告,这显然与缓冲区溢出有关,但我怀疑这里有其他意义。

虽然我试图研究char []和char *之间的区别,但我还没有找到一种有效的方法。有人可以解释我错在哪里吗?

0 个答案:

没有答案