我对 C 很陌生,所以为了学习它,我试图创建一个输出龙曲线的程序。这是我到目前为止得到的:
#include <stdio.h>
#include <string.h>
#define ebene 5
char str_n[ebene-1];
char tmp[256]; // ="1"; // 1=R, 0=L
char text[256];
int a_index=0;
char switch_middle(char iarray[256]) {
int num=((2^a_index-1)-1)/2+1; // Nummer der Zahlen pro ebene |-1|/2|+1 -> Index des mittleren Buchstaben
if(num>=0) {
iarray[num]='0';
} else {
iarray[0]='\0';
}
}
int main() {
printf("Hauptschleife erreicht");
while(a_index<ebene) {
//snprintf(text, sizeof text, "%s1%s", tmp, switch_middle(tmp));
strcpy(text, tmp);
strcpy(text, "1");
strcpy(text, switch_middle(tmp)); // Error occures here!
//str_n[a_index]=text;
for(long i=sizeof(tmp)/sizeof(tmp[0]); i--; ) {
tmp[i]=text[i];
}
printf("Ebene: %d\n", a_index);
//printf(" Wert: %s", str_n[a_index]);
printf(" Wert: %d\n", text);
a_index++; // für Mathefunktionen
}
}
尝试编译它会给我一堆警告和一个错误;我在这个问题的标题中提到的那个(从类型'char *'分配给类型'char [256]'时不兼容的类型)。是的。任何帮助,将不胜感激 (:
*编辑:好的,下面的评论解决了大部分问题;现在只剩下一个警告,那就是“传递 'strcopy' 的参数 2 使指针从没有强制转换的整数”和“预期的 'const cgar * restrict' 但参数的类型为 'char'”作为包含的注释string.h。当我尝试运行该程序时,它给了我一个内存访问错误。我在上面的代码中标记了这些行。
*编辑²:已修复。感谢以下所有人(: